ci: run the checks in an Arch container on every push and pull request
- commit
- 266860ce7a501b397c08b8d0335e8c434ee0c9d2
- author
- brice · · 2026-10-01 03:06 UTC
- parent
- cf474d8
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +27 -12
M .github/workflows/ci.yml +27 -12
| @@ -1,26 +1,41 @@ | |||
| 1 | - | name: ci | |
| 2 | - | ||
| 1 | + | name: CI | |
| 3 | 2 | on: | |
| 4 | 3 | push: | |
| 5 | 4 | branches: [main] | |
| 6 | 5 | pull_request: | |
| 7 | - | ||
| 8 | - | permissions: | |
| 9 | - | contents: read | |
| 10 | - | ||
| 6 | + | # The release workflow runs these checks before it publishes. | |
| 7 | + | workflow_call: | |
| 8 | + | concurrency: | |
| 9 | + | group: ci-${{ github.ref }} | |
| 10 | + | cancel-in-progress: true | |
| 11 | 11 | jobs: | |
| 12 | - | test: | |
| 12 | + | # Arch matches the development system: Go and library versions are the | |
| 13 | + | # ones the package is built against. | |
| 14 | + | check: | |
| 13 | 15 | runs-on: ubuntu-latest | |
| 16 | + | container: | |
| 17 | + | image: archlinux:latest | |
| 18 | + | # An init process reaps killed children, as on a real session. | |
| 19 | + | options: --init | |
| 20 | + | env: | |
| 21 | + | XDG_RUNTIME_DIR: /tmp/xdg-runtime | |
| 14 | 22 | steps: | |
| 15 | - | - uses: actions/checkout@v4 | |
| 16 | - | - uses: actions/setup-go@v5 | |
| 23 | + | # pam and libxkbcommon are loaded at runtime through purego; the tests | |
| 24 | + | # run without a compositor or a GPU. gcc is for the race detector. | |
| 25 | + | - run: >- | |
| 26 | + | pacman -Syu --noconfirm --needed | |
| 27 | + | git go make gcc pam libxkbcommon | |
| 28 | + | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| 17 | 29 | with: | |
| 18 | - | go-version-file: go.mod | |
| 19 | - | - name: Tools | |
| 20 | - | run: | | |
| 30 | + | persist-credentials: false | |
| 31 | + | - run: | | |
| 32 | + | git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| 33 | + | install -d -m 700 "$XDG_RUNTIME_DIR" | |
| 34 | + | - run: | | |
| 21 | 35 | go install github.com/vektra/mockery/v3@v3.8.0 | |
| 22 | 36 | go install honnef.co/go/tools/cmd/staticcheck@latest | |
| 23 | 37 | echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" | |
| 24 | 38 | - run: make check | |
| 25 | 39 | - run: make race | |
| 26 | 40 | - run: make mocks-check | |
| 41 | + | - run: staticcheck ./... | |
| @@ -1,26 +1,41 @@ | |||||
| 1 | - | name: ci | 1 | + | name: CI |
| 2 | - | ||||
| 3 | on: | 2 | on: | ||
| 4 | push: | 3 | push: | ||
| 5 | branches: [main] | 4 | branches: [main] | ||
| 6 | pull_request: | 5 | pull_request: | ||
| 7 | - | 6 | + | # The release workflow runs these checks before it publishes. | |
| 8 | - | permissions: | 7 | + | workflow_call: |
| 9 | - | contents: read | 8 | + | concurrency: |
| 10 | - | 9 | + | group: ci-${{ github.ref }} | |
| 10 | + | cancel-in-progress: true | |||
| 11 | jobs: | 11 | jobs: | ||
| 12 | - | test: | 12 | + | # Arch matches the development system: Go and library versions are the |
| 13 | + | # ones the package is built against. | |||
| 14 | + | check: | |||
| 13 | runs-on: ubuntu-latest | 15 | runs-on: ubuntu-latest | ||
| 16 | + | container: | |||
| 17 | + | image: archlinux:latest | |||
| 18 | + | # An init process reaps killed children, as on a real session. | |||
| 19 | + | options: --init | |||
| 20 | + | env: | |||
| 21 | + | XDG_RUNTIME_DIR: /tmp/xdg-runtime | |||
| 14 | steps: | 22 | steps: | ||
| 15 | - | - uses: actions/checkout@v4 | 23 | + | # pam and libxkbcommon are loaded at runtime through purego; the tests |
| 16 | - | - uses: actions/setup-go@v5 | 24 | + | # run without a compositor or a GPU. gcc is for the race detector. |
| 25 | + | - run: >- | |||
| 26 | + | pacman -Syu --noconfirm --needed | |||
| 27 | + | git go make gcc pam libxkbcommon | |||
| 28 | + | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |||
| 17 | with: | 29 | with: | ||
| 18 | - | go-version-file: go.mod | 30 | + | persist-credentials: false |
| 19 | - | - name: Tools | 31 | + | - run: | |
| 20 | - | run: | | 32 | + | git config --global --add safe.directory "$GITHUB_WORKSPACE" |
| 33 | + | install -d -m 700 "$XDG_RUNTIME_DIR" | |||
| 34 | + | - run: | | |||
| 21 | go install github.com/vektra/mockery/v3@v3.8.0 | 35 | go install github.com/vektra/mockery/v3@v3.8.0 | ||
| 22 | go install honnef.co/go/tools/cmd/staticcheck@latest | 36 | go install honnef.co/go/tools/cmd/staticcheck@latest | ||
| 23 | echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" | 37 | echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" | ||
| 24 | - run: make check | 38 | - run: make check | ||
| 25 | - run: make race | 39 | - run: make race | ||
| 26 | - run: make mocks-check | 40 | - run: make mocks-check | ||
| 41 | + | - run: staticcheck ./... | |||