Move CI workflows to .forgejo/workflows #59

Merged
linus merged 3 commits from jerry/move-workflows-to-forgejo-develop into develop 2026-10-18 03:07:58 +00:00
Contributor

Forgejo reads .forgejo/workflows and ignores .gitea/workflows, so since the move from Gitea CI on this repo wouldn't run. This moves release-tag.yaml, test-pr.yaml over.

Edits: gitea.* contexts become github.*, and artifact actions are pinned to the code.forgejo.org v4 versions where they were used (upstream v4 refuses to run on non-GitHub servers).

Forgejo reads .forgejo/workflows and ignores .gitea/workflows, so since the move from Gitea CI on this repo wouldn't run. This moves release-tag.yaml, test-pr.yaml over. Edits: gitea.* contexts become github.*, and artifact actions are pinned to the code.forgejo.org v4 versions where they were used (upstream v4 refuses to run on non-GitHub servers).
Move CI workflows to .forgejo/workflows
Some checks failed
CI / vulncheck (pull_request) Failing after 29s
CI / check-and-test (pull_request) Successful in 1m34s
2c38d8ba53
The server moved from Gitea to Forgejo, which reads .forgejo/workflows and ignores .gitea/workflows, so CI would silently stop running here. Move the files over. While at it, swap the gitea.* expression contexts for github.* (Forgejo rejects gitea.*) and point upload/download-artifact@v4 at code.forgejo.org/forgejo, since upstream v4 refuses to run on non-GitHub servers.
Collaborator

vulncheck red from Go stdlib vulns fixed in go1.27.2, tracked in a separate Go bump PR. Diff is workflow files only; merging per Eva's GO and Justin's call via Rex.

vulncheck red from Go stdlib vulns fixed in go1.27.2, tracked in a separate Go bump PR. Diff is workflow files only; merging per Eva's GO and Justin's call via Rex.
build: Pin Go 1.27.2 and stop early on a toolchain mismatch
Some checks failed
CI / vulncheck (pull_request) Successful in 26s
CI / check-and-test (pull_request) Failing after 31s
102f0cd106
CI / vulncheck is failing because the stdlib in go1.27.0 and go1.27.1 has
known vulnerabilities (GO-2026-6603 to 6617) that are fixed in go1.27.2.
setup-go reads go.mod, which only said go 1.27.0, so every runner kept
building with the vulnerable toolchain.

Add a toolchain go1.27.2 line to go.mod and a scripts/check-toolchain.sh
preflight, run before the build in each CI job. If the Go, GoReleaser or
go.mod pins are wrong it stops and prints what it found, what is required
and the fix command. Also pin GoReleaser to v2.18.3 in the release job and
use the versioned action tags instead of @main/@master.
ash requested review from eva 2026-10-18 02:57:36 +00:00
Collaborator

I pushed one commit onto this branch (separate from Jerry's): 102f0cd, "build: Pin Go 1.27.2 and stop early on a toolchain mismatch". It adds toolchain go1.27.2 to go.mod, a scripts/check-toolchain.sh preflight run in each CI job right after setup-go, GoReleaser pinned to v2.18.3 in the release job, and a README note. The Makefile build target runs the preflight, test and test-race check Go only.

Checked on the jumpbox, with govulncheck v1.9.0:

Go govulncheck tests
before (Jerry's head) go1.27.1 9 vulnerabilities (GO-2026-6603, 6605, 6607, 6608, 6610, 6611, 6612, 6613, 6617) 12 packages ok, 0 fail (5 without tests)
after (this head) go1.27.2 0 vulnerabilities, exit 0 12 packages ok, 0 fail (5 without tests)

The preflight passes on go1.27.2. With go1.27.1 it stops with "found: go1.27.1 / required: go1.27.2 / fix: ...", and if go.mod's toolchain line is edited it reports the changed pins and the git checkout -- go.mod fix.

The Go bump was written by hand, copying the reviewed preflight from jiggablend #18 (s1d3sw1ped/jiggablend#18) rather than going through OpenCode, since it is a mechanical copy. I'll post the CI result once vulncheck finishes. Eva, please re-review this head.

vuln-before-steamcache2-move-workflows-to-forgejo-develop.txt

vuln-after-steamcache2-move-workflows-to-forgejo-develop.txt

I pushed one commit onto this branch (separate from Jerry's): 102f0cd, "build: Pin Go 1.27.2 and stop early on a toolchain mismatch". It adds `toolchain go1.27.2` to go.mod, a scripts/check-toolchain.sh preflight run in each CI job right after setup-go, GoReleaser pinned to v2.18.3 in the release job, and a README note. The Makefile build target runs the preflight, test and test-race check Go only. Checked on the jumpbox, with govulncheck v1.9.0: | | Go | govulncheck | tests | |---|---|---|---| | before (Jerry's head) | go1.27.1 | 9 vulnerabilities (GO-2026-6603, 6605, 6607, 6608, 6610, 6611, 6612, 6613, 6617) | 12 packages ok, 0 fail (5 without tests) | | after (this head) | go1.27.2 | 0 vulnerabilities, exit 0 | 12 packages ok, 0 fail (5 without tests) | The preflight passes on go1.27.2. With go1.27.1 it stops with "found: go1.27.1 / required: go1.27.2 / fix: ...", and if go.mod's toolchain line is edited it reports the changed pins and the `git checkout -- go.mod` fix. The Go bump was written by hand, copying the reviewed preflight from jiggablend #18 (https://git.s1d3sw1ped.com/s1d3sw1ped/jiggablend/pulls/18) rather than going through OpenCode, since it is a mechanical copy. I'll post the CI result once vulncheck finishes. Eva, please re-review this head. ![vuln-before-steamcache2-move-workflows-to-forgejo-develop.txt](https://git.s1d3sw1ped.com/attachments/411fecb0-a61e-4ee8-b0cc-98cfa527b3a8) ![vuln-after-steamcache2-move-workflows-to-forgejo-develop.txt](https://git.s1d3sw1ped.com/attachments/d9781048-a095-42d2-9e60-db73f324ba36)
ci: Bump golangci-lint to v2.14.0 for Go 1.27.2
All checks were successful
CI / vulncheck (pull_request) Successful in 23s
CI / check-and-test (pull_request) Successful in 1m2s
bc29941cea
With the toolchain at go1.27.2 the pinned golangci-lint v2.13.2 stops
type-checking the module (undefined: yaml and similar typecheck errors),
which fails CI / check-and-test even though go build and go vet pass.
v2.14.0 lints the same tree with 0 issues and is the version in the
forge toolchain standard.
Collaborator

CI on the first push: CI / vulncheck passed, but CI / check-and-test failed after about 30s. That was my doing: golangci-lint v2.13.2 stops type-checking the module on go1.27.2 (undefined: yaml and similar typecheck errors; I reproduced it on the jumpbox, while v2.14.0 gives 0 issues). I pushed bc29941, "ci: Bump golangci-lint to v2.14.0 for Go 1.27.2", on top, an ordinary fast-forward push. v2.14.0 is the version in the forge toolchain standard. Both CI / vulncheck and CI / check-and-test are now green on this head. Eva, please re-review this head.

CI on the first push: CI / vulncheck passed, but CI / check-and-test failed after about 30s. That was my doing: golangci-lint v2.13.2 stops type-checking the module on go1.27.2 (undefined: yaml and similar typecheck errors; I reproduced it on the jumpbox, while v2.14.0 gives 0 issues). I pushed bc29941, "ci: Bump golangci-lint to v2.14.0 for Go 1.27.2", on top, an ordinary fast-forward push. v2.14.0 is the version in the forge toolchain standard. Both CI / vulncheck and CI / check-and-test are now green on this head. Eva, please re-review this head.
eva approved these changes 2026-10-18 03:07:29 +00:00
eva left a comment

APPROVE at head bc29941cea.

  • CI / vulncheck and CI / check-and-test green on this head.
  • Diff is the workflow move to .forgejo/workflows, go.mod toolchain go1.27.2, scripts/check-toolchain.sh (byte-identical to the merged jiggablend preflight; prints toolchain / found / required / fix), README note, golangci-lint v2.14.0 (v2.13.2 fails to type-check on go1.27.2), goreleaser pinned to v2.18.3 in release-tag. Makefile gains check-toolchain/check-go targets. No stray files or secrets; mergeable.
  • Nit, non-blocking: govulncheck@latest in the vulncheck job is unpinned; covered by the pin-everything issue (steamcache2 #57 / vulture #16).
APPROVE at head bc29941cea663a8436a5d52086dc71028d80c5a1. - CI / vulncheck and CI / check-and-test green on this head. - Diff is the workflow move to .forgejo/workflows, go.mod `toolchain go1.27.2`, scripts/check-toolchain.sh (byte-identical to the merged jiggablend preflight; prints toolchain / found / required / fix), README note, golangci-lint v2.14.0 (v2.13.2 fails to type-check on go1.27.2), goreleaser pinned to v2.18.3 in release-tag. Makefile gains check-toolchain/check-go targets. No stray files or secrets; mergeable. - Nit, non-blocking: `govulncheck@latest` in the vulncheck job is unpinned; covered by the pin-everything issue (steamcache2 #57 / vulture #16).
linus merged commit 749041ef27 into develop 2026-10-18 03:07:58 +00:00
linus deleted branch jerry/move-workflows-to-forgejo-develop 2026-10-18 03:07:59 +00:00
Sign in to join this conversation.
No description provided.