Conversation
…lds (Phase 2g) Adds a tag-gated Create Release stage to the root Jenkinsfile, replacing the release.yaml GH Action: `make version` -> generate-deployment(-cw) -> generate-deployment(-cw)-bundle -> publish idempotently via `gh release create`/`gh release upload --clobber` (find-or-create, matching softprops/action-gh-release's old behavior so a re-run is safe). Needs "Discover tags" (pattern v*) enabled on the Build L7Operator multibranch job before env.TAG_NAME is ever populated - tracked in the migration plan's Jenkins job config action items, not a repo change. IMAGE_TAG_BASE is overridden locally to docker.io/caapim/layer7-operator for this stage's `make version` call specifically - this Jenkinsfile already defines IMAGE_TAG_BASE at the pipeline level for a different purpose (the Artifactory image path prefix used by Build and Push Image above), so reusing it as-is here would have baked the wrong image reference into the released bundle.yaml. Extended the Test Automation stage (previously PR-only) to also run on tag builds, as a final release gate - a release should get one fresh pass rather than relying solely on its commit's earlier PR-time result. Create Release is placed after it, so a release is never published without that stage having passed first for this exact tag. Assumes `gh` CLI is available on the `default`-label agent (unverified, same category of assumption as `ct`'s availability flagged in the Phase 2b commits - confirm on first real run). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Stacked on #105 - targets
kk640244-jenkins-build-out, notmain, sincethis builds on that work. Will need rebasing once #105 merges.
Automates what was previously going to be a manual runbook step: producing
and publishing the operator's installable
bundle.yaml/cw-bundle.yamlfor a tagged release, replacing the
release.yamlGH Action(
on: push: tags: v*.*.*).Untested against a live Jenkins run, same as #105.
What changed
Added a
Create Releasestage to the rootJenkinsfile, gated onenv.TAG_NAME(only runs for tag builds):make version->generate-deployment generate-cw-deployment->generate-deployment-bundle generate-cw-deployment-bundle- the exactsame Makefile targets
release.yamlused to run.gh release createif no release exists yet forthe tag,
gh release upload --clobberif one already does - matchessoftprops/action-gh-release's old find-or-create behavior, so a re-runof this stage is safe.
IMAGE_TAG_BASEis overridden locally (BUNDLE_IMAGE_TAG_BASE) todocker.io/caapim/layer7-operatorfor this stage'smake versioncallspecifically - confirmed with the team this stays the default image
reference. This Jenkinsfile already defines
IMAGE_TAG_BASEat thepipeline level for a different purpose (the Artifactory image path prefix
used by
Build and Push Image), so reusing it as-is here would have bakedthe wrong image reference into the released
bundle.yaml.Also extended the
Test Automationstage (previously PR-only) to also runon tag builds, as a final release gate before
Create Releaseruns -agreed a release should get one fresh test pass rather than relying solely
on its commit's earlier PR-time result.
Needed before this actually fires (not a repo change)
Build L7Operator: enable "Discover tags" (patternv*) in its GitHubBranch Source config -
env.TAG_NAMEis never populated without it.ghCLI is available on thedefault-label agent (same categoryof unverified tool-availability assumption as
ctin Relocate chart-publish pipeline off gh-pages, wire in PR-gated test automation #105 - flaggingrather than assuming).
GITHUB_CAAPIM_TOKENcredential needsrepo-scope release-createpermission (already used elsewhere for this purpose, so likely fine, not
independently reverified here).