-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing Release Flow
Fábio Luciano edited this page Jun 11, 2026
·
2 revisions
git clone --recurse-submodules https://github.com/fabioluciano/tekton-events-relay
cd tekton-events-relay
go build ./...
go test ./... -short # full suite needs the wiki submodule (example-config tests)Tooling is pinned via .mise.toml; pre-commit hooks (.pre-commit-config.yaml) run gofmt, golangci-lint, yamllint, kubeconform and kube-linter.
Conventions:
-
Conventional Commits (
feat:,fix:,chore:…) — they drive versioning; a commit template lives in.gitmessage. - Tests are mandatory and must pass with
-race; external APIs are always mocked (httptest / miniredis) — no test may call a real service. - New config keys ship with
values.yamldefaults andvalues.schema.jsonentries in the same PR. - New behavior goes behind a flag whose default preserves current behavior.
Every PR runs Go build/test/lint (ci-go), Docker build (ci-docker), Helm lint + kubeconform (ci-helm) and CodeQL.
Releases are fully automated with semantic-release on merges to main:
- Commit messages determine the next semver (fix → patch, feat → minor,
!/BREAKING CHANGE→ major). - The pipeline tags, generates the changelog, builds the multi-arch image and Helm chart, and publishes both to
ghcr.io. - Artifacts are Cosign-signed (keyless OIDC, logged in Rekor) — verification commands are in the README.
Nothing manual: no version bumps in PRs, no hand-written changelog entries.
This wiki is a git submodule (wiki/) of the main repo. The repo's test suite parses examples/config.yaml — keep it valid (tekton-events-relay --validate --config wiki/examples/config.yaml) when editing.
Getting started
Reference
SCM providers
Notifiers
Running in production
More