Contributing & Release Flow

Development

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:

CI

Every PR runs Go build/test/lint (ci-go), Docker build (ci-docker), Helm lint + kubeconform (ci-helm) and CodeQL.

Releases

Releases are fully automated with semantic-release on merges to main:

  1. Commit messages determine the next semver (fix β†’ patch, feat β†’ minor, !/BREAKING CHANGE β†’ major).
  2. The pipeline tags, generates the changelog, builds the multi-arch image and Helm chart, and publishes both to ghcr.io.
  3. 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.

Wiki

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.