Skip to content

Add CI pipeline (GitHub Actions) - #2

Merged
BinanIbrahim merged 2 commits into
mainfrom
ci-pipeline
Jun 19, 2026
Merged

Add CI pipeline (GitHub Actions)#2
BinanIbrahim merged 2 commits into
mainfrom
ci-pipeline

Conversation

@BinanIbrahim

Copy link
Copy Markdown
Owner

Why

The repo had no automated checks — formatting, tests, linting, and
vulnerability scanning were all manual. CONVENTIONS.md already specifies the
tooling that "should be enforced in CI, not by humans," and a CI pipeline is the
top item in Phase 4 of ROADMAP.md. This wires that up.

What

Adds .github/workflows/ci.yml, which runs on every push to main and on every
pull request:

  • Testgofmt -s formatting check, go vet, and go test -race -cover ./...
  • Lintgolangci-lint (pinned v1.62.2), configured via .golangci.yml
    to enable the linters CONVENTIONS.md requires: errcheck, govet,
    staticcheck, revive, gosec
  • Govulncheckgovulncheck ./... to dogfood the project's own goal
  • Build — cross-compile matrix for linux/darwin × amd64/arm64

The Go version is read from go.mod (go-version-file) so CI never drifts from
the toolchain. Runs are deduplicated per-ref via a concurrency group, and the
workflow has read-only contents permission.

Also in this PR

  • gofmt -s fix for internal/extractor/extractor.go — it had trailing
    whitespace and would have failed the new formatting gate on the first run.
  • Ticks the Phase 4 CI item in ROADMAP.md.

Testing

All jobs were reproduced locally against the current main:

  • gofmt -s -l . clean, go vet ./... clean
  • go test -race -cover ./... passes (matcher coverage ~92%)
  • All four cross-compile targets build

Note

The lint job pins golangci-lint to v1.62.2 for a stable config schema. If a
runner ever rejects that version, it's a one-line bump in ci.yml.

BinanIbrahim and others added 2 commits June 19, 2026 18:35
Removes trailing whitespace so the codebase passes the gofmt check
enforced by the new CI workflow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Run gofmt, go vet, go test -race -cover, golangci-lint, and govulncheck
on every push and PR, plus a linux/darwin amd64+arm64 cross-compile
matrix. Enable the linters required by CONVENTIONS.md and tick the
roadmap item.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BinanIbrahim
BinanIbrahim merged commit ecf3e26 into main Jun 19, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant