ci: build deploy-camunda binary on the nightly integration path#6439
Merged
eamonnmoloney merged 2 commits intoJun 24, 2026
Conversation
The integration runner downloads a pre-built `deploy-camunda-binary` artifact in its install/upgrade/cleanup jobs, but that artifact was only produced on the PR/merge-queue entrypoint (`test-chart-version.yaml`'s init job, via the generate-chart-matrix action). Nightlies enter through `test-integration-template.yaml` directly and never built/uploaded it, so every nightly failed early at "Download deploy-camunda binary" with "Artifact not found for name: deploy-camunda-binary" — before any deploy or test ran. Build and upload the binary in the template's init job so both entry paths have a producer. Because the upgrade-minor nightlies invoke the reusable flow twice in a single run (e.g. 8.9 install + 8.10 upgrade), the artifact name is suffixed with the per-leg `identifier` (already guaranteed unique per deployment) to avoid same-run artifact-name collisions; the runner downloads via a new `binary-artifact-name` input that defaults to the original static name, leaving the PR-CI path unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes a CI artifact-production gap by ensuring the deploy-camunda binary artifact is available when the integration suite enters via test-integration-template.yaml (nightly/E2E entry path), and by making the runner workflow’s artifact download name configurable.
Changes:
- Build + upload the
deploy-camundabinary intest-integration-template.yaml’sinitjob (with cache restore + conditional build). - Add a
binary-artifact-nameinput totest-integration-runner.yamland use it for the binary download in install/upgrade/cleanup jobs. - Pass the artifact name from the template workflow into the runner workflow.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/test-integration-template.yaml | Adds cache/build/upload steps for deploy-camunda and passes the artifact name to the runner workflow. |
| .github/workflows/test-integration-runner.yaml | Adds binary-artifact-name input and uses it in the three download-artifact steps. |
Comment on lines
+347
to
+353
| - name: Upload deploy-camunda binary | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | ||
| with: | ||
| name: deploy-camunda-binary-${{ inputs.identifier }} | ||
| path: ~/.local/bin/deploy-camunda | ||
| if-no-files-found: error | ||
| retention-days: 1 |
Comment on lines
375
to
379
| exclude: ${{ inputs.exclude }} | ||
| identifier: ${{ inputs.identifier }}-${{ inputs.shortname }} | ||
| binary-artifact-name: deploy-camunda-binary-${{ inputs.identifier }} | ||
| camunda-helm-repo: ${{ inputs.camunda-helm-repo }} | ||
| camunda-helm-dir: ${{ inputs.camunda-helm-dir }} |
…trix With the integration template now building and uploading the binary on both entry paths (under a per-leg-unique name the runner downloads), the static `deploy-camunda-binary` artifact produced by generate-chart-matrix has no consumer. Remove the upload step to leave a single producer (the template). The build/cache/PATH steps stay — generate-chart-matrix.sh still prefers the compiled binary on PATH over `go run`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
bkenez
approved these changes
Jun 24, 2026
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.
Which problem does the PR fix?
Every SM nightly that enters the Helm integration suite through
test-integration-template.yaml(e.g. SM Nightly 8.10 Upgrade Minor)fails immediately at the Download deploy-camunda binary step:
All downstream steps (Helm install, Playwright e2e, upgrade) are then
skipped. This is a CI plumbing gap, not a chart or test regression.
Example failing run:
https://github.com/camunda/c8-cross-component-e2e-tests/actions/runs/28075385080/job/83118495302
What's in this PR?
test-integration-runner.yamldownloads a pre-builtdeploy-camunda-binaryartifact in its
install/upgrade/cleanupjobs. That artifact isonly produced on the PR / merge-queue entrypoint —
test-chart-version.yaml'sinitjob, via thegenerate-chart-matrixcomposite action. The nightlypath enters
test-integration-template.yamldirectly (from the E2E repo'sreusable flow), whose
initjob never builds or uploads the binary, so thedownload has no producer.
This PR:
test-integration-template.yaml'sinitjob (cache-restore → conditional Go build → upload), so both entry paths
have a producer. The cache key matches the existing one, so the PR path
restores from cache rather than rebuilding.
identifier(
deploy-camunda-binary-${{ inputs.identifier }}). The upgrade-minornightlies invoke the reusable flow twice in a single run (8.9 install +
8.10 upgrade); a static artifact name would collide under
upload-artifact@v4+immutability.identifieris already required to beunique per deployment (it keys the namespace/hostname), so it is a safe
uniqueness key.
binary-artifact-nameinput totest-integration-runner.yaml(default
deploy-camunda-binary) used by the three download steps. Thetemplate passes the suffixed name; the PR-CI path keeps the default and is
unchanged.
Checklist
Before opening the PR:
make go.update-golden-only.After opening the PR: