ci: run the checks in an Arch container
The Forgejo runner has no sudo, so apt-get failed before any test. The job now runs as root in archlinux:latest on Forgejo and GitHub, installs go, gcc and dbus with pacman, and checks that the toolchain matches go.mod.
- commit
- e3bde5d98eb5f186921a7c6e61a08aa29a1644b1
- author
- brice · · 2026-10-15 02:18 UTC
- parent
- 0885f41
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +10 -5
M .github/workflows/ci.yml +10 -5
| @@ -9,17 +9,22 @@ concurrency: | |||
| 9 | 9 | group: ci-${{ github.ref }} | |
| 10 | 10 | cancel-in-progress: true | |
| 11 | 11 | jobs: | |
| 12 | + | # The job runs as root in an Arch container, on Forgejo and GitHub alike. | |
| 13 | + | # dbus-daemon runs the integration tests against a private bus; gcc is for | |
| 14 | + | # the race detector. | |
| 12 | 15 | check: | |
| 13 | 16 | runs-on: ubuntu-latest | |
| 17 | + | container: | |
| 18 | + | image: archlinux:latest | |
| 19 | + | options: --init | |
| 14 | 20 | steps: | |
| 21 | + | - run: pacman -Syu --noconfirm --needed git go gcc dbus | |
| 15 | 22 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| 16 | 23 | with: | |
| 17 | 24 | persist-credentials: false | |
| 18 | - | - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7 | |
| 19 | - | with: | |
| 20 | - | go-version-file: go.mod | |
| 21 | - | # dbus-daemon runs the integration tests against a private bus. | |
| 22 | - | - run: sudo apt-get update && sudo apt-get install -y --no-install-recommends dbus | |
| 25 | + | - run: | | |
| 26 | + | git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| 27 | + | test "$(go env GOVERSION | cut -d. -f1-2)" = "go$(sed -n 's/^go \([0-9]*\.[0-9]*\).*/\1/p' go.mod)" | |
| 23 | 28 | - run: test -z "$(gofmt -l .)" | |
| 24 | 29 | - run: go vet ./... | |
| 25 | 30 | - run: GOARCH=386 go vet ./... | |
| @@ -9,17 +9,22 @@ concurrency: | |||||
| 9 | group: ci-${{ github.ref }} | 9 | group: ci-${{ github.ref }} | ||
| 10 | cancel-in-progress: true | 10 | cancel-in-progress: true | ||
| 11 | jobs: | 11 | jobs: | ||
| 12 | + | # The job runs as root in an Arch container, on Forgejo and GitHub alike. | |||
| 13 | + | # dbus-daemon runs the integration tests against a private bus; gcc is for | |||
| 14 | + | # the race detector. | |||
| 12 | check: | 15 | check: | ||
| 13 | runs-on: ubuntu-latest | 16 | runs-on: ubuntu-latest | ||
| 17 | + | container: | |||
| 18 | + | image: archlinux:latest | |||
| 19 | + | options: --init | |||
| 14 | steps: | 20 | steps: | ||
| 21 | + | - run: pacman -Syu --noconfirm --needed git go gcc dbus | |||
| 15 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 22 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| 16 | with: | 23 | with: | ||
| 17 | persist-credentials: false | 24 | persist-credentials: false | ||
| 18 | - | - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7 | 25 | + | - run: | |
| 19 | - | with: | 26 | + | git config --global --add safe.directory "$GITHUB_WORKSPACE" |
| 20 | - | go-version-file: go.mod | 27 | + | test "$(go env GOVERSION | cut -d. -f1-2)" = "go$(sed -n 's/^go \([0-9]*\.[0-9]*\).*/\1/p' go.mod)" |
| 21 | - | # dbus-daemon runs the integration tests against a private bus. | |||
| 22 | - | - run: sudo apt-get update && sudo apt-get install -y --no-install-recommends dbus | |||
| 23 | - run: test -z "$(gofmt -l .)" | 28 | - run: test -z "$(gofmt -l .)" | ||
| 24 | - run: go vet ./... | 29 | - run: go vet ./... | ||
| 25 | - run: GOARCH=386 go vet ./... | 30 | - run: GOARCH=386 go vet ./... | ||