[cueweb/rest_gateway] Integrate CueWeb and Rest Gateway into GitHub CI/CD Pipeline #2676
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 repository | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: '1.21' | |
- name: Install Protobuf | |
run: | | |
sudo apt-get install -y protobuf-compiler | |
npm install -g protobuf-compiler | |
working-directory: ./rest_gateway/opencue_gateway | |
- name: Install dependencies | |
run: go mod init opencue_gateway && go mod tidy | |
working-directory: ./rest_gateway/opencue_gateway | |
- name: Install Go tools | |
run: | | |
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway | |
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 | |
go install github.com/golang-jwt/jwt/v5 | |
go install google.golang.org/protobuf/cmd/protoc-gen-go | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc | |
working-directory: ./rest_gateway/opencue_gateway | |
- name: Copy proto files | |
run: | | |
cp -r ./proto /app/proto | |
- name: Copy gateway files | |
run: | | |
cp -r ./rest_gateway/opencue_gateway /app/opencue_gateway | |
- name: Generate go grpc code | |
run: | | |
mkdir -p gen/go && \ | |
protoc -I ../proto/ \ | |
--go_out ./gen/go/ \ | |
--go_opt paths=source_relative \ | |
--go-grpc_out ./gen/go/ \ | |
--go-grpc_opt paths=source_relative \ | |
../proto/*.proto | |
working-directory: ./rest_gateway/opencue_gateway | |
- name: Generate grpc-gateway handlers | |
run: | | |
protoc -I ../proto/ --grpc-gateway_out ./gen/go \ | |
--grpc-gateway_opt paths=source_relative \ | |
--grpc-gateway_opt generate_unbound_methods=true \ | |
../proto/*.proto | |
working-directory: ./rest_gateway/opencue_gateway | |
- name: Run Go Unit Tests | |
run: go test -v | |
working-directory: ./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 }} |