Skip to content

[cueweb/rest_gateway] Integrate CueWeb and Rest Gateway into GitHub CI/CD Pipeline #2660

[cueweb/rest_gateway] Integrate CueWeb and Rest Gateway into GitHub CI/CD Pipeline

[cueweb/rest_gateway] Integrate CueWeb and Rest Gateway into GitHub CI/CD Pipeline #2660

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 CUEBOT_ENDPOINT=test-endpoint \
-e REST_PORT=test-port \
-e 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 }}