Skip to content

fix: improve datasource, ticket, and audit reliability #175

fix: improve datasource, ticket, and audit reliability

fix: improve datasource, ticket, and audit reliability #175

Workflow file for this run

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 }}