26f897c1ec
release / release-please (push) Failing after 1m49s
docs / build (push) Failing after 6m34s
release / build-and-upload (arm64, linux) (push) Has been cancelled
release / build-and-upload (arm64, windows) (push) Has been cancelled
release / build-darwin (amd64, darwin) (push) Has been cancelled
release / checksums (push) Has been cancelled
release / finalize (push) Has been cancelled
release / build-darwin (arm64, darwin) (push) Has been cancelled
release / build-and-upload (amd64, linux) (push) Has been cancelled
release / build-and-upload (amd64, windows) (push) Has been cancelled
docs / deploy (push) Has been cancelled
72 lines
1.7 KiB
YAML
72 lines
1.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
|
|
- name: Format check
|
|
run: |
|
|
output=$(gofmt -l .)
|
|
if [ -n "$output" ]; then
|
|
echo "Files not formatted:"
|
|
echo "$output"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Vet
|
|
run: go vet ./...
|
|
|
|
test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
|
|
- name: Test on Unix
|
|
if: runner.os != 'Windows'
|
|
run: go test -race ./...
|
|
|
|
- name: Test on Windows
|
|
if: runner.os == 'Windows'
|
|
run: go test -v -timeout=15m ./...
|
|
|
|
- name: Build
|
|
run: go build ./cmd/no-mistakes
|
|
|
|
e2e:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
|
|
# The e2e suite drives the real no-mistakes binary against a fake
|
|
# agent through `git push -> daemon -> pipeline -> push to upstream`
|
|
# for claude, codex, and opencode. It builds the binary itself, so
|
|
# no separate build step is needed. Linux-only for now: opencode's
|
|
# ephemeral HTTP server picks up unused ports via :0, which is
|
|
# fine on Linux runners but flakes on Windows agent harnesses.
|
|
- name: End-to-end suite
|
|
run: make e2e
|