name: CI on: push: branches: - "*" pull_request: workflow_dispatch: jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout uses: https://git.quad4.io/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Setup Node.js uses: https://git.quad4.io/actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 with: node-version: 22 cache: pnpm - name: Setup Python uses: https://git.quad4.io/actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: "3.13" - name: Setup Task uses: https://git.quad4.io/actions/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1 with: version: "3.46.3" - name: Setup Poetry run: pip install poetry - name: Setup Python environment run: task setup-python-env - name: Install Node dependencies run: task node_modules - name: Lint run: | set -o pipefail task lint 2>&1 | tee lint_results.txt build-frontend: runs-on: ubuntu-latest steps: - name: Checkout uses: https://git.quad4.io/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Setup Node.js uses: https://git.quad4.io/actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 with: node-version: 22 cache: pnpm - name: Setup Task uses: https://git.quad4.io/actions/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1 with: version: "3.46.3" - name: Install dependencies run: task node_modules - name: Determine version id: version run: | SHORT_SHA=$(git rev-parse --short HEAD) echo "version=${SHORT_SHA}" >> $GITHUB_OUTPUT - name: Build frontend run: | set -o pipefail task build-frontend 2>&1 | tee build_results.txt env: VITE_APP_VERSION: ${{ steps.version.outputs.version }} test-backend: runs-on: ubuntu-latest steps: - name: Checkout uses: https://git.quad4.io/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Setup Python uses: https://git.quad4.io/actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: "3.13" - name: Setup Task uses: https://git.quad4.io/actions/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1 with: version: "3.46.3" - name: Compile backend run: | set -o pipefail task compile 2>&1 | tee compile_results.txt test-lang: runs-on: ubuntu-latest steps: - name: Checkout uses: https://git.quad4.io/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Setup Node.js uses: https://git.quad4.io/actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 with: node-version: 22 cache: pnpm - name: Setup Python uses: https://git.quad4.io/actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: "3.13" - name: Setup Task uses: https://git.quad4.io/actions/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1 with: version: "3.46.3" - name: Setup Poetry run: pip install poetry - name: Install dependencies run: task install - name: Run language tests run: | set -o pipefail task test-lang 2>&1 | tee lang_results.txt