plengauer / plengauer/Thoth

deploy-local fails in "Determine version comment" when the caller uses deploy-local directly

Closed
#4,259 0 comments 0 reactions 1 assignee View on GitHub

@plengauer is already working on this.

Since Sep 19, 2026.

bug
Dominant language
Shell
Stars
167
Forks
15
Avg merge
2d 23h
Merged PRs (30d)
131

Description

Symptom

Any workflow that uses plengauer/opentelemetry-github/actions/instrument/deploy-local@<sha> directly (rather than going through .../instrument/deploy@<sha>) fails at the "Determine version comment" step of the composite action with a bare Process completed with exit code 1, with no error message.

Example: https://github.com/plengauer/Thoth/actions/runs/33862557226/job/100990074429 (Recompile Agentic Workflows in plengauer/Thoth).

Root cause

actions/instrument/deploy-local/action.yml, step determine-instrumentation-version-comment:

comment="$(grep -E '/actions/instrument/deploy@' "${{ steps.find-self.outputs.path }}" | sed -n 's/.*# *//p' | head -n 1)"

The pattern is anchored on deploy@, so it does not match a deploy-local@... reference. grep then exits 1. The composite action's shell is bash --noprofile --norc -e -o pipefail, so under set -e + pipefail the failing pipeline inside the command substitution aborts the step.

This is inconsistent with the two sibling steps, which both use a deploy* glob and therefore do match deploy-local:

  • determine-repository: select(.uses == "*/actions/instrument/deploy*")
  • determine-instrumentation-version: select(.uses == "<repo>/actions/instrument/deploy*")

Callers of deploy are unaffected, because deploy invokes deploy-local via the local ./.deploy-otel-local symlink while the caller's workflow file still literally contains /actions/instrument/deploy@<sha>.

Confirmation via traces

The OTel trace for the run (trace.id = 8fee1eb891c5b9418dd1e2dfabb073b2) shows the failure chain unambiguously:

span status
grep -E /actions/instrument/deploy@ .github/workflows/recompile_agentic_workflows.yml error
/usr/bin/bash --noprofile --norc -e -o pipefail .../3c4b8a00-....sh error
recompile (job) error
Recompile Agentic Workflows (workflow) error

The sibling sed and head -n 1 spans in the same pipeline completed successfully — only grep errored.

Proposed fix

Broaden the pattern to cover deploy-local (and any future deploy* variant) and make "no version comment present" a non-fatal outcome, since the comment is optional by design (the step already guards the output with [ -z "$comment" ] ||):

comment="$(grep -E '/actions/instrument/deploy[^@[:space:]]*@' "${{ steps.find-self.outputs.path }}" | sed -n 's/.*# *//p' | head -n 1 || true)"

The || true additionally hardens the step against a workflow that legitimately carries no # vX.Y.Z annotation at all, which would fail the same way today.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.