Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
605d5a29f7 |
@@ -1,16 +1,9 @@
|
|||||||
name: check
|
name: check
|
||||||
on: [push]
|
on: [push]
|
||||||
# Free the shared runner: a new push cancels only the same branch's older run.
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
# actions/checkout v4.2.2, 2026-02-22
|
# actions/checkout v4.2.2, 2026-02-22
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
# script/cibuild needs no token, so none is left in .git/config.
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- run: script/cibuild
|
- run: script/cibuild
|
||||||
|
|||||||
@@ -29,12 +29,6 @@ fmt-check, and commit.
|
|||||||
`Dockerfile` stops it. Such a build is given its version with
|
`Dockerfile` stops it. Such a build is given its version with
|
||||||
`--build-arg VERSION=...`, as `script/docker` and `script/cibuild` already do.
|
`--build-arg VERSION=...`, as `script/docker` and `script/cibuild` already do.
|
||||||
The check itself is unchanged.
|
The check itself is unchanged.
|
||||||
- 2026-10-06: The canonical `.gitea/workflows/check.yml` now has a `concurrency`
|
|
||||||
block, so a new push cancels the older run on the same branch and no other,
|
|
||||||
and its checkout step sets `persist-credentials: false`, so the job's token is
|
|
||||||
not left in `.git/config` (issue 107). `REPO_POLICIES.md` and both checklists
|
|
||||||
describe the workflow as it now is. Not yet tried on the shared runner, which
|
|
||||||
is out of disk space. Repositories pick this up on their next re-vendor.
|
|
||||||
- 2026-10-06: The canonical `.golangci.yml` now disables `canonicalheader`
|
- 2026-10-06: The canonical `.golangci.yml` now disables `canonicalheader`
|
||||||
(issue 105). In golangci-lint v2.14.0 it misses findings at random in a
|
(issue 105). In golangci-lint v2.14.0 it misses findings at random in a
|
||||||
package that also calls `ResponseWriter.Header()`, so the same tree can fail
|
package that also calls `ResponseWriter.Header()`, so the same tree can fail
|
||||||
|
|||||||
@@ -100,9 +100,7 @@ with your task.
|
|||||||
tag-derived version additionally needs `fetch-depth: 0` on the CI checkout
|
tag-derived version additionally needs `fetch-depth: 0` on the CI checkout
|
||||||
step, which clones shallow and fetches no tags by default.
|
step, which clones shallow and fetches no tags by default.
|
||||||
- [ ] Gitea Actions workflow in `.gitea/workflows/` runs `script/cibuild` on
|
- [ ] Gitea Actions workflow in `.gitea/workflows/` runs `script/cibuild` on
|
||||||
push, checks out with `persist-credentials: false`, and carries the
|
push — reference
|
||||||
`concurrency` block that lets a new push cancel only the same branch's
|
|
||||||
older run — reference
|
|
||||||
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitea/workflows/check.yml`
|
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitea/workflows/check.yml`
|
||||||
- [ ] Language-specific config:
|
- [ ] Language-specific config:
|
||||||
- [ ] Go: `go.mod`, `go.sum`, `.golangci.yml` (fetch from
|
- [ ] Go: `go.mod`, `go.sum`, `.golangci.yml` (fetch from
|
||||||
|
|||||||
@@ -112,9 +112,7 @@ Template files can be fetched from:
|
|||||||
- Non-server: the final stage brings up the dev environment
|
- Non-server: the final stage brings up the dev environment
|
||||||
- Image pinned by sha256 hash with version/date comment
|
- Image pinned by sha256 hash with version/date comment
|
||||||
- [ ] Gitea Actions workflow at `.gitea/workflows/check.yml` that runs
|
- [ ] Gitea Actions workflow at `.gitea/workflows/check.yml` that runs
|
||||||
`script/cibuild` on push, checks out with `persist-credentials: false`,
|
`script/cibuild` on push — reference
|
||||||
and carries the `concurrency` block that lets a new push cancel only the
|
|
||||||
same branch's older run — reference
|
|
||||||
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitea/workflows/check.yml`
|
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitea/workflows/check.yml`
|
||||||
- [ ] Language-specific:
|
- [ ] Language-specific:
|
||||||
- [ ] Go: `go mod init sneak.berlin/go/<name>`, `.golangci.yml` (fetch from
|
- [ ] Go: `go mod init sneak.berlin/go/<name>`, `.golangci.yml` (fetch from
|
||||||
|
|||||||
@@ -289,15 +289,9 @@ style conventions are in separate documents:
|
|||||||
do.
|
do.
|
||||||
|
|
||||||
- Every repo should have a Gitea Actions workflow (`.gitea/workflows/`) that
|
- Every repo should have a Gitea Actions workflow (`.gitea/workflows/`) that
|
||||||
runs `script/cibuild` on push, and checks out the repo as its only other step,
|
runs `script/cibuild` on push, and checks out the repo as its only other step.
|
||||||
with `persist-credentials: false`: `script/cibuild` needs no token, and
|
That script bootstraps, runs the gate phases, and then builds the image, so a
|
||||||
without it the checkout leaves the job's token in `.git/config` for every
|
successful run means every check passed; a bare `docker build .` does not
|
||||||
later step. Its `concurrency` block groups runs by workflow and branch
|
|
||||||
(`${{ github.workflow }}-${{ github.ref }}`) with `cancel-in-progress: true`,
|
|
||||||
so a new push cancels the older run on the same branch, queued or running, and
|
|
||||||
no other: runs for replaced commits do not hold up the shared runner.
|
|
||||||
`script/cibuild` bootstraps, runs the gate phases, and then builds the image,
|
|
||||||
so a successful run means every check passed; a bare `docker build .` does not
|
|
||||||
carry the same guarantee, because its gate phases may come from the cache. The
|
carry the same guarantee, because its gate phases may come from the cache. The
|
||||||
image build is uncached and so runs the gate phases a second time. That is the
|
image build is uncached and so runs the gate phases a second time. That is the
|
||||||
price of the rule above, and it is worth paying: the image that ships is built
|
price of the rule above, and it is worth paying: the image that ships is built
|
||||||
|
|||||||
Reference in New Issue
Block a user