name: check on: push: branches: - '**' jobs: check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 2024-10-23 with: # The superseded-status step needs history to walk ancestors (it # aborts on a shallow clone). fetch-depth: 0 - name: Mark superseded run statuses # Gitea cancels the in-flight run when another commit is pushed to the # same branch and records the cancellation as `failure`, so a commit # that was never tested reads as a test result. The script rewrites # those statuses to say what happened. See its header for why the # state stays `failure` and not `skipped`. env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} run: script/ci-mark-superseded - name: Fingerprint the build context # Writes the hash of the commit being checked into the context, which # invalidates the `COPY . .` layer of both check stages: a commit # that was never linted, format-checked, tested and built cannot # report success from cache. run: git rev-parse HEAD > .ci-fingerprint - name: Build Docker image (runs make fmt-check, golangci-lint, make test, make build) run: script/cibuild