Files
zeekayandHanzo Dev 096f96835b runs-on names a machine, not a purpose
The purpose-prefixed labels (hanzo-build-*, hanzo-deploy-*, hanzo-docs-build-*)
are retired in favour of the bare <os>-<arch> every runner already advertises.

They were not a capability, only a habit, and the habit cost builds: papers asked
for hanzo-build-linux-amd64, no online runner offered it, and two idle
linux-amd64 runners sat beside the queue while the build simply never ran. The
lux tree lost three days to lux-linux-amd64 the same way.

What a job is FOR is the workflow's name. runs-on is the machine it needs.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 11:36:52 -07:00

68 lines
1.4 KiB
YAML

name: govulncheck
on:
pull_request:
branches: [master, v9, v9.7, v9.8, "ndyakov/**", "ofekshenawa/**", "ce/**"]
push:
branches: [master, v9, "v9.*"]
schedule:
- cron: "0 6 * * 1"
permissions:
contents: read
concurrency:
group: govulncheck-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
govulncheck:
name: govulncheck
runs-on: linux-amd64
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true
- name: Install govulncheck
run: go install golang.org/x/vuln/cmd/[email protected]
- name: Run govulncheck (all modules)
shell: bash
run: |
set -u -o pipefail
status=0
found=0
while IFS= read -r gomod; do
found=1
mod=$(dirname "$gomod")
echo "Scanning module: $mod"
if ! (
cd "$mod" && govulncheck ./...
); then
status=1
fi
done < <(
find . \
-type f -name go.mod \
-not -path '*/vendor/*' \
-not -path '*/.git/*' \
| sort -u
)
if [ "$found" -eq 0 ]; then
echo "No Go modules found to scan."
exit 1
fi
exit "$status"