[cueweb/rest_gateway] Integrate CueWeb and Rest Gateway into GitHub CI/CD Pipeline #2665
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: | | |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v25.1/protoc-25.1-linux-x86_64.zip | |
unzip protoc-25.1-linux-x86_64.zip -d $HOME/protoc | |
sudo mv $HOME/protoc/bin/protoc /usr/local/bin/ | |
sudo mv $HOME/protoc/include/* /usr/local/include/ | |
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: Generate Go gRPC and grpc-gateway 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 | |
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 ./rest_gateway/opencue_gateway | |
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 }} |