fix(ci): collapse goreleaser Task install+run into single step #153

Merged
goern merged 0 commits from refs/pull/153/head into main 2026-05-25 11:48:44 +00:00
goern commented 2026-05-25 11:48:27 +00:00 (Migrated from codeberg.org)

Summary

First Tekton release run on v2.24.0 failed: release Step exited 127 (goreleaser: command not found). Tekton Step containers in a Pod share the workspace volume but NOT /usr/local/bin/, so tools installed in earlier install-* Steps were gone when the release Step started.

This commit moves syft + goreleaser installation inline into the release Step so the binaries are available where they're used.

Smoke-test stays a separate Step — it only reads from dist/ which lives on the shared workspace.

Tracks bead forgejo-mcp-29g.

Why this is a workaround, not the fix

Inline install on every release is fragile (upstream URL changes, GitHub rate limits, go install build time on every run). Proper fix is a prebuilt OCI image with all release tooling baked in. Tracked as P0 in forgejo-mcp-1b4. This PR unblocks v2.24.x shipping; the image work proceeds in parallel.

State of v2.24.0

Tag v2.24.0 exists on remote but no Release object on Codeberg (goreleaser never reached the publish call). Path B: leave the tag, ship v2.24.1 as the first real Tekton release. Phantom tag is harmless for binary/mcpb users (Codeberg Releases page simply skips it).

Test plan

  • Merge this PR.
  • Cut release via b4mad/semantic-release → expect v2.24.1 (fix(ci) → patch bump).
  • PaC fires on-tag-push-release PipelineRun in op1st-pipelines.
  • release Step completes; dist/ contains 4× archive + 4× SBOM + checksums.txt.
  • Smoke-test passes (forgejo-mcp version banner matches 2.24.1).
  • cosign-sign + mcpb-pack Tasks complete.
  • Codeberg release page for v2.24.1 has all 8 expected assets + checksums.txt.sig.
  • cosign verify-blob --key <op1st-pub> --signature checksums.txt.sig checksums.txt succeeds.
## Summary First Tekton release run on `v2.24.0` failed: `release` Step exited 127 (`goreleaser: command not found`). Tekton Step containers in a Pod share the workspace volume but NOT `/usr/local/bin/`, so tools installed in earlier `install-*` Steps were gone when the `release` Step started. This commit moves syft + goreleaser installation inline into the `release` Step so the binaries are available where they're used. Smoke-test stays a separate Step — it only reads from `dist/` which lives on the shared workspace. Tracks bead `forgejo-mcp-29g`. ## Why this is a workaround, not the fix Inline install on every release is fragile (upstream URL changes, GitHub rate limits, `go install` build time on every run). Proper fix is a prebuilt OCI image with all release tooling baked in. Tracked as **P0** in `forgejo-mcp-1b4`. This PR unblocks v2.24.x shipping; the image work proceeds in parallel. ## State of v2.24.0 Tag `v2.24.0` exists on remote but no Release object on Codeberg (goreleaser never reached the publish call). Path B: leave the tag, ship v2.24.1 as the first real Tekton release. Phantom tag is harmless for binary/mcpb users (Codeberg Releases page simply skips it). ## Test plan - [ ] Merge this PR. - [ ] Cut release via b4mad/semantic-release → expect `v2.24.1` (fix(ci) → patch bump). - [ ] PaC fires `on-tag-push-release` PipelineRun in `op1st-pipelines`. - [ ] `release` Step completes; `dist/` contains 4× archive + 4× SBOM + `checksums.txt`. - [ ] Smoke-test passes (`forgejo-mcp version` banner matches `2.24.1`). - [ ] `cosign-sign` + `mcpb-pack` Tasks complete. - [ ] Codeberg release page for v2.24.1 has all 8 expected assets + `checksums.txt.sig`. - [ ] `cosign verify-blob --key <op1st-pub> --signature checksums.txt.sig checksums.txt` succeeds.
op1st-gitops commented 2026-05-25 11:48:37 +00:00 (Migrated from codeberg.org)

op1st Pipelines as Code/code-scans-ldqvp is running.

Starting Pipelinerun code-scans-ldqvp in namespace op1st-pipelines

You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:

tkn pr logs -n op1st-pipelines code-scans-ldqvp -f

op1st Pipelines as Code/code-scans-ldqvp is running. Starting Pipelinerun <b>[code-scans-ldqvp](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/code-scans-ldqvp)</b> in namespace <b>op1st-pipelines</b> You can monitor the execution using the [op1st Pipelines as Code](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/code-scans-ldqvp) PipelineRun viewer or through the command line by using the [tkn](https://tekton.dev/docs/cli/#installation) CLI with the following command: <code>tkn pr logs -n op1st-pipelines code-scans-ldqvp -f</code>
op1st-gitops commented 2026-05-25 11:48:37 +00:00 (Migrated from codeberg.org)

op1st Pipelines as Code/on-pull-request-km6qv is running.

Starting Pipelinerun on-pull-request-km6qv in namespace op1st-pipelines

You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:

tkn pr logs -n op1st-pipelines on-pull-request-km6qv -f

op1st Pipelines as Code/on-pull-request-km6qv is running. Starting Pipelinerun <b>[on-pull-request-km6qv](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/on-pull-request-km6qv)</b> in namespace <b>op1st-pipelines</b> You can monitor the execution using the [op1st Pipelines as Code](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/on-pull-request-km6qv) PipelineRun viewer or through the command line by using the [tkn](https://tekton.dev/docs/cli/#installation) CLI with the following command: <code>tkn pr logs -n op1st-pipelines on-pull-request-km6qv -f</code>
op1st-gitops commented 2026-05-25 11:48:47 +00:00 (Migrated from codeberg.org)

op1st Pipelines as Code/code-scans-ldqvp


Task Statuses:

StatusDurationName
Failed 9 seconds

fetch-source

Failed 8 seconds

gitleaks-version


Failure snippet:

task fetch-source has the status "TaskRunCancelled":
TaskRun "code-scans-ldqvp-fetch-source" was cancelled. TaskRun cancelled as the PipelineRun it belongs to has been cancelled.
op1st Pipelines as Code/code-scans-ldqvp <ul> <li><b>Namespace</b>: <a href="https://detailurl.setting.custom-console-url-namespace.is.not.configured">op1st-pipelines</a></li> <li><b>PipelineRun:</b> <a href="https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/code-scans-ldqvp">code-scans-ldqvp</a></li> </ul> <hr> <h4>Task Statuses:</h4> <table> <tr><th>Status</th><th>Duration</th><th>Name</th></tr> <tr> <td>Failed</td> <td>9 seconds</td><td> [fetch-source](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/code-scans-ldqvp/logs/fetch-source) </td></tr> <tr> <td>Failed</td> <td>8 seconds</td><td> [gitleaks-version](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/code-scans-ldqvp/logs/gitleaks-version) </td></tr> </table> <hr> <h4>Failure snippet:</h4> task <b>fetch-source</b> has the status <b>"TaskRunCancelled"</b>: <pre>TaskRun "code-scans-ldqvp-fetch-source" was cancelled. TaskRun cancelled as the PipelineRun it belongs to has been cancelled.</pre>
op1st-gitops commented 2026-05-25 11:48:47 +00:00 (Migrated from codeberg.org)

op1st Pipelines as Code/on-pull-request-km6qv


Task Statuses:

StatusDurationName
Failed 9 seconds

fetch-source


Failure snippet:

task fetch-source has the status "TaskRunCancelled":
TaskRun "on-pull-request-km6qv-fetch-source" was cancelled. TaskRun cancelled as the PipelineRun it belongs to has been cancelled.
op1st Pipelines as Code/on-pull-request-km6qv <ul> <li><b>Namespace</b>: <a href="https://detailurl.setting.custom-console-url-namespace.is.not.configured">op1st-pipelines</a></li> <li><b>PipelineRun:</b> <a href="https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/on-pull-request-km6qv">on-pull-request-km6qv</a></li> </ul> <hr> <h4>Task Statuses:</h4> <table> <tr><th>Status</th><th>Duration</th><th>Name</th></tr> <tr> <td>Failed</td> <td>9 seconds</td><td> [fetch-source](https://console-openshift-console.apps.nostromo.erdgeschoss.b4mad.emea.operate-first.cloud/k8s/ns/op1st-pipelines/tekton.dev~v1~PipelineRun/on-pull-request-km6qv/logs/fetch-source) </td></tr> </table> <hr> <h4>Failure snippet:</h4> task <b>fetch-source</b> has the status <b>"TaskRunCancelled"</b>: <pre>TaskRun "on-pull-request-km6qv-fetch-source" was cancelled. TaskRun cancelled as the PipelineRun it belongs to has been cancelled.</pre>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
agentic-forges/forgejo-mcp!153
No description provided.