ci: run the checks on every push and pull request
- commit
- 351864e55eb758671fc0fab3f9bf2891ea45c8ce
- author
- brice · · 2026-10-01 02:58 UTC
- committer
- brice · · 2026-10-01 03:03 UTC
- parent
- 6dc62e7
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +41 -0
A .github/workflows/ci.yml +41 -0
| @@ -0,0 +1,41 @@ | |||
| 1 | + | name: CI | |
| 2 | + | on: | |
| 3 | + | push: | |
| 4 | + | branches: [main] | |
| 5 | + | pull_request: | |
| 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 | + | jobs: | |
| 12 | + | # Arch matches the development system: libwayland and Go versions change | |
| 13 | + | # protocol behavior. | |
| 14 | + | check: | |
| 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 | |
| 22 | + | steps: | |
| 23 | + | # wayland: libwayland-server for the in-process test compositor | |
| 24 | + | # (NEFERCAP_REQUIRE_WAYLAND=1 fails without it); libxkbcommon is loaded | |
| 25 | + | # at runtime through purego; ffmpeg (libx264) runs the encoder tests; | |
| 26 | + | # gcc is for the race detector. | |
| 27 | + | - run: >- | |
| 28 | + | pacman -Syu --noconfirm --needed | |
| 29 | + | git go make gcc wayland libxkbcommon ffmpeg | |
| 30 | + | - uses: actions/checkout@v4 | |
| 31 | + | - run: | | |
| 32 | + | git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| 33 | + | install -d -m 700 "$XDG_RUNTIME_DIR" | |
| 34 | + | - run: | | |
| 35 | + | go install github.com/bnema/hexcheck/cmd/hexcheck@v0.2.0 | |
| 36 | + | go install github.com/vektra/mockery/v3@v3.8.0 | |
| 37 | + | go install honnef.co/go/tools/cmd/staticcheck@latest | |
| 38 | + | - run: make check | |
| 39 | + | - run: make race | |
| 40 | + | - run: make mocks-check | |
| 41 | + | - run: ~/go/bin/staticcheck ./... | |
| @@ -0,0 +1,41 @@ | |||||
| 1 | + | name: CI | |||
| 2 | + | on: | |||
| 3 | + | push: | |||
| 4 | + | branches: [main] | |||
| 5 | + | pull_request: | |||
| 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 | + | jobs: | |||
| 12 | + | # Arch matches the development system: libwayland and Go versions change | |||
| 13 | + | # protocol behavior. | |||
| 14 | + | check: | |||
| 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 | |||
| 22 | + | steps: | |||
| 23 | + | # wayland: libwayland-server for the in-process test compositor | |||
| 24 | + | # (NEFERCAP_REQUIRE_WAYLAND=1 fails without it); libxkbcommon is loaded | |||
| 25 | + | # at runtime through purego; ffmpeg (libx264) runs the encoder tests; | |||
| 26 | + | # gcc is for the race detector. | |||
| 27 | + | - run: >- | |||
| 28 | + | pacman -Syu --noconfirm --needed | |||
| 29 | + | git go make gcc wayland libxkbcommon ffmpeg | |||
| 30 | + | - uses: actions/checkout@v4 | |||
| 31 | + | - run: | | |||
| 32 | + | git config --global --add safe.directory "$GITHUB_WORKSPACE" | |||
| 33 | + | install -d -m 700 "$XDG_RUNTIME_DIR" | |||
| 34 | + | - run: | | |||
| 35 | + | go install github.com/bnema/hexcheck/cmd/hexcheck@v0.2.0 | |||
| 36 | + | go install github.com/vektra/mockery/v3@v3.8.0 | |||
| 37 | + | go install honnef.co/go/tools/cmd/staticcheck@latest | |||
| 38 | + | - run: make check | |||
| 39 | + | - run: make race | |||
| 40 | + | - run: make mocks-check | |||
| 41 | + | - run: ~/go/bin/staticcheck ./... | |||