Skip to content
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

chore(deps): update docker/login-action digest to 184bdaa

chore(deps): update docker/login-action digest to 184bdaa #14617

Workflow file for this run

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