check / check (push) Successful in 3m29s
ESLint, pinned by package.json and yarn.lock, runs in a new js-lint stage of the Dockerfile on the pinned node 24 LTS image. It starts from a js-deps stage that installs ESLint and stays cached until those two files change. script/lint builds js-lint after the Go lint, and the build stage depends on it, so make check and the image build both fail on a violation. eslint.config.mjs turns on the styleguide's checkable rules: no-var and prefer-const. Model: opus-5-5
38 lines
1.4 KiB
YAML
38 lines
1.4 KiB
YAML
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 every check stage: a commit
|
|
# that was never linted, format-checked, stylesheet-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, the stylesheet check, ESLint, make test, make build)
|
|
run: script/cibuild
|