tektoncd / tektoncd/pipelines-as-code
feat: rework release pipeline to use draft-release model (no manual tag push)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 214
- Forks
- 144
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 27
Description
Problem
PAC is moving to the tektoncd GitHub org, which enforces branch protection rules. The current release process requires pushing tags directly (git push refs/tags/v1.2.3), which is blocked under these rules.
Current Flow
- Engineer manually runs
git tag v1.2.3 && git push refs/tags/v1.2.3 .tekton/release-pipeline.yamltriggers onpushtorefs/tags/*- Pipeline reads version from
git tag --points-at HEAD - GoReleaser runs with
prerelease: true(.goreleaser.yml:52) — creates a pre-release; tag must already exist
Problems:
- Direct tag push is incompatible with branch protection in the tektoncd org
prerelease: truecreates a pre-release rather than a draft, requiring an already-existing tag- No way to trigger the pipeline without a pre-existing tag
Proposed Flow (tektoncd upstream pattern)
This mirrors the approach used by tektoncd/pipeline:
- Trigger release via
workflow_dispatch(or PAC push to a special branch) with aversioninput parameter - Pipeline builds binaries, generates manifests, and creates a GitHub draft release (no tag created yet)
- Engineer reviews the draft, edits release notes, then publishes → GitHub automatically creates the tag on publish
- Branch pushes (
release-v1.2.x/stable) continue as today
Files to Change
| File | Change |
|---|---|
.tekton/release-pipeline.yaml |
Change trigger from refs/tags/* push to workflow_dispatch; accept version as input parameter |
.goreleaser.yml:52 |
Change prerelease: true to draft: true |
docs/content/docs/dev/release-process.md |
Update documented process to reflect draft-release flow |
References
- tektoncd/pipeline release-cheat-sheet and
tekton/READMEfor the upstream pattern - GitHub docs: Automatically created releases — publishing a draft auto-creates the tag
Acceptance Criteria
- Release pipeline triggers via
workflow_dispatchwith a version parameter (no manual tag push required) - GoReleaser creates a draft release (not a pre-release)
- Publishing the draft on GitHub creates the tag automatically
- Release process docs updated to reflect new flow
- Works within tektoncd org branch protection rules
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .tekton/release-pipeline.yaml and .goreleaser.yml at line 52, then compare the referenced tektoncd/pipeline release pattern. Update docs/content/docs/dev/release-process.md alongside the pipeline and GoReleaser changes. Done means workflow_dispatch accepts a version, creates a draft release without a manual tag push, publishing creates the tag, and branch-protection constraints are supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, go
- Domain
- ci-cd, devops, documentation, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100