fix: improve datasource, ticket, and audit reliability #175
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| contents: read | |
| jobs: | |
| backend-test: | |
| name: Backend test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Run tests | |
| working-directory: backend | |
| run: ./gradlew test --parallel --max-workers=4 | |
| - name: Upload test reports | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: backend-test-reports | |
| path: | | |
| backend/**/build/reports/tests/** | |
| backend/**/build/test-results/** | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| frontend-check: | |
| name: Frontend check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Verify built-in driver metadata | |
| working-directory: backend | |
| run: ./gradlew :cgdm-web:verifyBuiltinDriversJson | |
| - name: Set up Node.js 22.22.1 | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22.22.1 | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install dependencies | |
| working-directory: frontend | |
| run: npm ci --no-audit --no-fund | |
| - name: Lint | |
| working-directory: frontend | |
| run: npm run lint | |
| - name: Check i18n | |
| working-directory: frontend | |
| run: npm run check-i18n | |
| - name: Build | |
| working-directory: frontend | |
| run: npm run build:dm | |
| build-tgz: | |
| name: Build tgz (dev) | |
| runs-on: ubuntu-latest | |
| needs: [backend-test, frontend-check] | |
| if: (github.event_name == 'push' && github.ref == 'refs/heads/dev') || github.event_name == 'workflow_dispatch' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Set up Node.js 22.22.1 | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22.22.1 | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install frontend dependencies | |
| working-directory: frontend | |
| run: npm ci --no-audit --no-fund | |
| - name: Cache built-in drivers bundle | |
| uses: actions/cache@v6 | |
| with: | |
| path: package/pkg/builtin-drivers/bundle | |
| key: builtin-drivers-${{ hashFiles('package/pkg/builtin-drivers/built-in-drivers.xml') }} | |
| - name: Build tgz packages | |
| working-directory: package | |
| env: | |
| GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g | |
| run: ./package.sh --build | |
| - name: Upload alone tgz artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: package/build/cgdm-alone.tar.gz | |
| archive: false | |
| if-no-files-found: error | |
| retention-days: 3 | |
| - name: Upload console tgz artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: package/build/cgdm-console.tar.gz | |
| archive: false | |
| if-no-files-found: error | |
| retention-days: 3 | |
| - name: Upload sidecar tgz artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: package/build/cgdm-sidecar.tar.gz | |
| archive: false | |
| if-no-files-found: error | |
| retention-days: 3 | |
| docker: | |
| name: Docker ${{ matrix.service }} (dev) | |
| runs-on: ubuntu-latest | |
| needs: build-tgz | |
| permissions: | |
| contents: read | |
| packages: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| service: [alone, console, sidecar] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Download tgz artifact | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: cgdm-${{ matrix.service }}.tar.gz | |
| path: docker-ctx | |
| - name: Stage docker build context | |
| run: cp -r package/docker/shared docker-ctx/shared | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v4 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Generate image tags | |
| id: meta | |
| uses: docker/metadata-action@v6 | |
| with: | |
| images: ghcr.io/${{ github.repository }}-${{ matrix.service }} | |
| tags: | | |
| type=raw,value=dev | |
| type=sha | |
| - name: Build and push ${{ matrix.service }} | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: docker-ctx | |
| file: package/docker/${{ matrix.service }}.Dockerfile | |
| platforms: linux/amd64,linux/arm64 | |
| provenance: false | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| cache-from: type=gha,scope=docker-${{ matrix.service }} | |
| cache-to: type=gha,mode=max,scope=docker-${{ matrix.service }} |