This repository was archived by the owner on Aug 17, 2025. It is now read-only.
chore(deps): update docker/login-action digest to 184bdaa #14617
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
| on: | |
| pull_request: | |
| merge_group: | |
| name: CI | |
| concurrency: | |
| group: ${{ github.ref }}-ci | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Test Go | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Language Plugins | |
| run: just build-language-plugins | |
| - name: Test | |
| run: go-test-annotate | |
| # HERE FOR TESTING, blocked on https://github.com/block/ftl/issues/5469 | |
| # THIS WILL END UP IN releas.yml | |
| # intellij-release: | |
| # name: Release IntelliJ Plugin | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Checkout code | |
| # uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| # with: | |
| # fetch-depth: 0 | |
| # - name: Init Hermit | |
| # uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| # - name: Build Cache | |
| # uses: ./.github/actions/build-cache | |
| # - name: Publish | |
| # env: | |
| # PUBLISH_TOKEN: "${{ secrets.JETBRAINS_MARKETPLACE_SQUARE_PLUGINS }}" | |
| # CERTIFICATE_CHAIN: "${{ secrets.JETBRAINS_CERTIFICATE_CHAIN }}" | |
| # PRIVATE_KEY: "${{ secrets.JETBRAINS_PRIVATE_KEY }}" | |
| # PRIVATE_KEY_PASSWORD: "${{ secrets.JETBRAINS_PRIVATE_KEY_PASSWORD }}" | |
| # run: | | |
| # set -euo pipefail | |
| # PLUGIN_VERSION="$(git describe --tags --abbrev=0 | sed 's/^v//')" | |
| # export PLUGIN_VERSION | |
| # echo "Publishing version $PLUGIN_VERSION" | |
| # just publish-intellij-plugin | |
| test-readme: | |
| name: Test README | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Language Plugins | |
| run: just build-language-plugins | |
| - name: Test README | |
| run: just test-readme | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: golangci-lint | |
| shell: bash | |
| run: | | |
| golangci-lint --version | |
| golangci-lint run --new-from-rev="$(git merge-base origin/main HEAD)" ./... 2>&1 | to-annotation | |
| - name: go-check-sumtype | |
| shell: bash | |
| run: go-check-sumtype --include-shared-interfaces=true ./... 2>&1 | to-annotation | |
| - name: actionlint | |
| shell: bash | |
| run: actionlint --oneline | to-annotation | |
| # Too annoying to disable individual warnings | |
| # - name: staticcheck | |
| # run: staticcheck ./... | |
| - name: lint-scripts | |
| run: just lint-scripts | |
| proto-breaking: | |
| name: Proto Breaking Change Check | |
| if: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'skip-proto-breaking') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Proto Breaking Change Check | |
| shell: bash | |
| run: | | |
| set -o pipefail | |
| buf breaking --against 'https://github.com/block/ftl.git#branch=main' | to-annotation || true | |
| console: | |
| name: Console | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-pnpm: "true" | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Console pnpm install | |
| run: just pnpm-install | |
| - name: Console Lint | |
| run: just lint-frontend | |
| - name: Console Build | |
| run: just build-frontend | |
| - name: Console Test | |
| run: just test-frontend | |
| test-wasm: | |
| name: Test sqlc-gen-ftl | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| - name: Test WASM | |
| run: just test-sqlc-gen-ftl | |
| - name: Check for uncommitted changes | |
| run: | | |
| if [[ -n $(git status -s) ]]; then | |
| echo "Error: Building sqlc-gen-ftl resulted in uncommitted changes:" | |
| git status -s | |
| git --no-pager diff | |
| exit 1 | |
| fi | |
| extension: | |
| name: VSCode Extension | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-pnpm: "true" | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: VSCode extension pnpm install | |
| run: just pnpm-install | |
| - name: VSCode extension lint | |
| working-directory: frontend/vscode | |
| run: pnpm run lint | |
| - name: VSCode extension pnpm build and package | |
| run: just package-extension | |
| plugin: | |
| name: Intellij Plugin | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-maven: "true" | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Install Java | |
| run: java -version | |
| - name: Build Intellij Plugin | |
| run: just build-intellij-plugin | |
| build-all: | |
| name: Rebuild All | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-pnpm: "true" | |
| enable-maven: "true" | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Rebuild All | |
| run: just build-all | |
| - name: Check No SCM Changes | |
| run: | | |
| if [[ -n $(git status -s) ]] | |
| then | |
| echo "Running the build resulted in changes to git controlled files:" | |
| git status -s | |
| git --no-pager diff | |
| exit 1 | |
| fi | |
| docs: | |
| name: Build Docs | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-pnpm: "true" | |
| - name: Build website | |
| run: just build-docs | |
| gen-lsp: | |
| name: Generate LSP Help | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - run: just lsp-generate | |
| arch-lint: | |
| name: Lint Architecture | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - run: go-arch-lint check || true | |
| console-e2e: | |
| name: Console e2e | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-pnpm: "true" | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Restore playwright browser cache | |
| id: cache-playwright | |
| uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # ratchet:actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-${{ runner.arch }}-playwright-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ runner.arch }}-playwright- | |
| - name: Console pnpm install | |
| run: just pnpm-install | |
| - name: Build Language Plugins | |
| run: just build-language-plugins | |
| - name: Console e2e | |
| run: just e2e-frontend | |
| build-jvm-artifacts: | |
| name: Build JVM Artifacts | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-maven: "true" | |
| - name: Build JVM Artifacts | |
| shell: bash | |
| run: | | |
| just build-jvm | |
| - name: Upload JVM Jars | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4 | |
| with: | |
| name: maven-repo | |
| path: ~/.m2/repository | |
| integration-shard: | |
| name: Shard Integration Tests | |
| runs-on: ftl | |
| outputs: | |
| matrix: ${{ steps.extract-tests.outputs.matrix }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| with: | |
| enable-pnpm: "true" | |
| - name: Build Go Binaries | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| export GOARCH=amd64 | |
| just build ftl ftl-sqlc | |
| just build-language-plugins | |
| - name: Upload Release Binaries | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4 | |
| with: | |
| name: backend-binaries | |
| path: build/release | |
| - name: Extract test cases | |
| id: extract-tests | |
| run: | | |
| set -euo pipefail | |
| # shellcheck disable=SC2046 | |
| echo "matrix={\"test\":$(jq -c -n '$ARGS.positional' --args $(git grep -l '^//go:build integration' | xargs grep '^func Test' | awk '{print $2}' | cut -d'(' -f1 | paste -d '|' - | sed 's/|*$//'))}" >> "$GITHUB_OUTPUT" | |
| integration-run: | |
| name: Integration Test | |
| needs: | |
| - integration-shard | |
| - build-jvm-artifacts | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{fromJson(needs.integration-shard.outputs.matrix)}} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
| - name: Init Hermit | |
| uses: cashapp/activate-hermit@12a728b03ad41eace0f9abaf98a035e7e8ea2318 # ratchet:cashapp/[email protected] | |
| - name: Build Cache | |
| uses: ./.github/actions/build-cache | |
| - name: Download Release Binaries | |
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 | |
| with: | |
| name: backend-binaries | |
| path: build/release | |
| - name: Download JVM Binaries | |
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 | |
| with: | |
| name: maven-repo | |
| path: ~/.m2/repository | |
| - name: Run ${{ matrix.test }} | |
| run: | | |
| set -euo pipefail | |
| chmod +x build/release/* | |
| # shellcheck disable=SC2046 | |
| echo '${{ matrix.test }}' | tr '|' ' ' | xargs -n1 just --set USE_RELEASE_BINARIES "1" integration-tests | |
| # Temporarily disabled because it conflicts on every failure except the first. | |
| # - name: Archive Report | |
| # uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4 | |
| # if: failure() # Upload the report only on failure | |
| # with: | |
| # name: failure-report-${{ github.run_id }}-${{ github.run_attempt }} | |
| # path: /tmp/ftl-test-content/ | |
| integration-success: | |
| name: Integration Success | |
| needs: [integration-run] | |
| runs-on: ubuntu-latest | |
| if: ${{ always() }} | |
| steps: | |
| - name: Check integration tests result | |
| run: | | |
| if [[ "${{ needs.integration-run.result }}" == "failure" ]]; then | |
| echo "Integration tests failed" | |
| exit 1 | |
| else | |
| echo "Integration tests passed" | |
| fi |