[cueweb/rest_gateway] Integrate CueWeb and Rest Gateway into GitHub CI/CD Pipeline #2655
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: OpenCue Testing Pipeline | |
on: | |
push: | |
branches: [ master, cueweb ] | |
pull_request: | |
branches: [ master, cueweb ] | |
jobs: | |
test_python_2022: | |
name: Run Python Unit Tests (CY2022) | |
runs-on: ubuntu-latest | |
container: aswf/ci-opencue:2022 | |
env: | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run Python Tests | |
run: ci/run_python_tests.sh --no-gui | |
test_cuebot_2022: | |
name: Build Cuebot and Run Unit Tests (CY2022) | |
runs-on: ubuntu-latest | |
container: | |
image: aswf/ci-opencue:2022 | |
env: | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build with Gradle | |
run: | | |
chown -R aswfuser:aswfgroup . | |
su -c "cd cuebot && ./gradlew build --stacktrace --info" aswfuser | |
test_python_2023: | |
name: Run Python Unit Tests (CY2023) | |
runs-on: ubuntu-latest | |
container: aswf/ci-opencue:2023 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run Python Tests | |
run: ci/run_python_tests.sh | |
test_cuebot_2023: | |
name: Build Cuebot and Run Unit Tests (CY2023) | |
runs-on: ubuntu-latest | |
container: | |
image: aswf/ci-opencue:2023 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build with Gradle | |
run: | | |
chown -R aswfuser:aswfgroup . | |
su -c "cd cuebot && ./gradlew build --stacktrace --info" aswfuser | |
test_python_2024: | |
name: Run Python Unit Tests (CY2024) | |
runs-on: ubuntu-latest | |
container: aswf/ci-opencue:2024 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run Python Tests | |
run: ci/run_python_tests.sh | |
test_cuebot_2024: | |
name: Build Cuebot and Run Unit Tests (CY2024) | |
runs-on: ubuntu-latest | |
container: | |
image: aswf/ci-opencue:2024 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build with Gradle | |
run: | | |
chown -R aswfuser:aswfgroup . | |
su -c "cd cuebot && ./gradlew build --stacktrace --info" aswfuser | |
test_pyside6: | |
name: Run CueGUI Tests using PySide6 | |
runs-on: ubuntu-latest | |
container: almalinux:9 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run CueGUI Tests | |
run: ci/test_pyside6.sh | |
lint_python: | |
name: Lint Python Code | |
runs-on: ubuntu-latest | |
container: aswf/ci-opencue:2022 | |
env: | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Lint Python Code | |
run: ci/run_python_lint.sh | |
test_sphinx: | |
name: Test Documentation Build | |
runs-on: ubuntu-latest | |
container: | |
image: aswf/ci-opencue:2023 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run Sphinx build | |
run: ci/build_sphinx_docs.sh | |
test_cueweb: | |
name: Run CueWeb Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Use Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 21.x | |
- name: install dependencies for cueweb | |
run: npm install | |
working-directory: ./cueweb | |
- name: Run tests in Docker container | |
run: npm test | |
working-directory: ./cueweb | |
test_rest_gateway: | |
name: Run Rest Gateway Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Docker build | |
uses: docker/setup-buildx-action@v2 | |
- name: Build Docker image | |
run: | | |
docker build -f ./rest_gateway/Dockerfile -t opencue_gateway:latest . | |
- name: Run Go Unit Tests | |
run: | | |
docker run --rm \ | |
-e EXPORT CUEBOT_ENDPOINT=test-endpoint \ | |
-e EXPORT REST_PORT=test-port \ | |
-e EXPORT JWT_AUTH_SECRET=test-secret \ | |
opencue_gateway:latest go test -v ./rest_gateway/opencue_gateway | |
# test_rest_gateway: | |
# name: Run Rest Gateway Tests | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v2 | |
# - name: Setup Go | |
# uses: actions/setup-go@v3 | |
# with: | |
# go-version: '1.21' | |
# - name: Initialize go module and install dependencies | |
# run: | | |
# cd rest_gateway/opencue_gateway | |
# go mod init opencue_gateway && go mod tidy | |
# - name: Install protoc-gen-groc-gateway tool | |
# run: | | |
# go install \ | |
# github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest \ | |
# github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest \ | |
# github.com/golang-jwt/jwt/v5@latest \ | |
# google.golang.org/protobuf/cmd/protoc-gen-go@latest \ | |
# google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest | |
# - name: Run rest gateway tests | |
# run: | | |
# cd rest_gateway/opencue_gateway | |
# go test -v ./... | |
check_changed_files: | |
name: Check Changed Files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get Changed Files | |
id: get_changed_files | |
uses: tj-actions/changed-files@v41 | |
- name: Check for Version Change | |
run: ci/check_changed_files.py ${{ steps.get_changed_files.outputs.modified_files }} ${{ steps.get_changed_files.outputs.deleted_files }} | |
check_migration_files: | |
name: Check Database Migration Files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check Migration Files | |
run: ci/check_database_migrations.py | |
check_for_version_bump: | |
name: Check for Version Bump | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get Changed Files | |
id: get_changed_files | |
uses: tj-actions/changed-files@v41 | |
- name: Check for Version Change | |
run: ci/check_version_bump.py ${{ steps.get_changed_files.outputs.all_changed_and_modified_files }} |