Skip to content

Add CI/release workflows, pre-commit hooks, and proxy fixes#6

Merged
bbrowning merged 6 commits intomainfrom
ci-and-precommit
Apr 1, 2026
Merged

Add CI/release workflows, pre-commit hooks, and proxy fixes#6
bbrowning merged 6 commits intomainfrom
ci-and-precommit

Conversation

@bbrowning
Copy link
Copy Markdown
Owner

  • Add GitHub Actions CI workflow (lint, unit tests, integration tests, cross-arch build, container build) and tag-triggered release workflow (binary builds, multi-arch container push to quay.io, GitHub Release)
  • Add .golangci.yml for consistent linter configuration in CI
  • Add pre-commit hooks (gofmt, go vet) via pre-commit framework (make install-hooks)
  • Fix data race in proxy CONNECT handling by capturing ConnectAction values locally
  • Fix gofmt violations

bbrowning and others added 6 commits April 1, 2026 12:57
CI workflow runs lint (golangci-lint + gofmt), unit tests (Go 1.22/1.23
matrix with race detector), integration tests, cross-compile builds, and
container build smoke tests on push/PR to main. Release workflow builds
cross-compiled binaries, publishes multi-arch container images to quay.io,
and creates GitHub releases with auto-generated notes on v* tag push.

Also adds golangci-lint config, new Makefile targets (unit-test,
integration-test, fmt-check), and -short flag support in integration
tests to enable separate test runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
goproxy's package-level globals (GoproxyCa, OkConnect, MitmConnect,
RejectConnect) were written in New() and read in the CONNECT handler
closure, causing races when multiple proxy instances exist concurrently.
Replace with local variables captured by the closure. Re-enable -race
in integration tests now that the race is fixed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The codebase doesn't use InsecureSkipVerify — keep the lint check
active so it flags any future introduction of insecure TLS config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
go.mod requires go 1.23, so the 1.22 matrix entry would fail. Also
fixes minor formatting issues that the CI gofmt check would catch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uses pre-commit with local hooks. Run `make install-hooks` to set up.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolve all golangci-lint errors (errcheck, gosec, staticcheck, unused)
that caused the CI Lint job to fail, and add golangci-lint as a
pre-commit hook to catch these issues before pushing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@bbrowning bbrowning merged commit cc984fd into main Apr 1, 2026
6 checks passed
@bbrowning bbrowning deleted the ci-and-precommit branch April 1, 2026 13:31
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