Repository navigation
ci: add GitHub Actions test, lint, and security workflows - #340
Conversation
- handle unchecked error returns in transport tests - drop untrappable os.Kill from signal.Notify - use protoiface.MessageV1 instead of deprecated golang/protobuf import (golang/protobuf becomes an indirect dependency)
Exclude the three legacy unused helpers in args.go by exact text; all other default linters stay enabled.
- tests: Go 1.25/1.26/stable matrix with race detection, coverage upload, and go mod tidy verification - lint: go vet plus golangci-lint on every PR - security: govulncheck, gosec (SARIF), and CodeQL analysis - codecov: compare project coverage against base instead of a fixed 80% target (current coverage is ~6%)
Weekly updates for Go modules and GitHub Actions, with minor/patch and actions updates grouped into single PRs.
Lets CI run manually on feature branches, where neither the master push trigger nor pull_request applies.
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
securego/gosec publishes no floating v2 tag; use the current release v2.29.0 (Dependabot keeps it up to date).
The CircleCI build has been failing on master since before this branch (last green build: #148). Its go test/go vet steps are now covered by the GitHub Actions workflows; cross-compiled release binaries remain available via build-release.sh. Also drop the CircleCI and Go Report Card badges, and the nightly artifacts note that pointed at CircleCI.
|
@madeye @Mygod — this PR retires CircleCI in favor of the new GitHub Actions workflows (see the PR description for details). One follow-up needs someone with CircleCI project access: removing Could whoever on the maintainers team has a CircleCI account with admin access to this project please turn it off?
No other changes are needed on the GitHub side. |
Summary
Code fixes make
golangci-lintpass with default linters, so the lint job is green on day one:os.Killfromsignal.Notifyserial.ToTypedMessagetakes the legacy v1 message interface; declareprotoiface.MessageV1(golang/protobuf/proto.Messageis its alias — identical type) instead of importing the deprecatedgolang/protobuf.golang/protobufbecomes an indirect dependency.Evidence
golangci-lint run→ 18 issues (13 errcheck, 2 staticcheck, 3 unused)After:
golangci-lint run→ 0 issuesgo test -race -shuffle=on -count=1 ./...→ok ... 16sgo vet ./...,go mod tidy(diff vs committed state),actionlint→ all cleanMerge Danger
Door: Two-way
Workflows and lint config are trivially removable. No runtime code path changes — the
protoiface.MessageV1swap is a type-level no-op.Blast Radius: CI-only
Once branch protection adopts these as required status checks, any red workflow blocks merges. Dependabot starts opening PRs after merge. Coverage upload needs an optional
CODECOV_TOKENsecret; without it the workflow still stays green (fail_ci_if_error: false).CircleCI retirement
The CircleCI build has been red on master since before this branch (last green: #148). This PR removes
.circleci/config.yml— itsgo test/go vetsteps are covered by the new workflows; release binaries stay available viabuild-release.sh.Note for maintainers: removing the config alone does not stop CircleCI — pipelines now fail with "No configuration was found". To fully silence it, a maintainer with CircleCI access should open Project Settings → Advanced Settings and click Stop Building.