Files

37 lines
934 B
YAML

name: hermetic-ci
on:
push:
pull_request:
permissions:
contents: read
env:
GOFLAGS: -mod=readonly
GOTOOLCHAIN: local
jobs:
test:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version-file: go.mod
cache: false
- name: Download locked modules
run: go mod download
- name: Formatting
run: test -z "$(gofmt -l .)"
- name: Hermetic full test suite
run: ./scripts/test-hermetic.sh
- name: Static analysis
run: go vet ./...
- name: Documentation contract
run: ./scripts/check-docs.sh
- name: Reproducible cross-builds and checksums
run: ./scripts/test-release.sh
- name: Clean-machine verification
run: ./scripts/verify-clean-machine.sh