Skip to content

fix(#6604): bind-mount gitlab-runner into custom executor container - #6639

Merged
ggallen merged 1 commit into
mainfrom
agent/6604-gitlab-runner-bind-mount
Aug 27, 2026
Merged

fix(#6604): bind-mount gitlab-runner into custom executor container#6639
ggallen merged 1 commit into
mainfrom
agent/6604-gitlab-runner-bind-mount

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Summary

Bind-mounts the host's gitlab-runner binary into the custom executor's Podman container so that GitLab Runner's artifact upload/download stages can find it. Without this, the upload_artifacts_on_success stage silently fails (prints "Missing gitlab-runner. Uploading artifacts is disabled."), causing downstream jobs like dispatch-mr-agents to fail when they try to fetch artifacts.

Related Issue

Changes

  • Add a conditional read-only bind-mount of /usr/local/bin/gitlab-runner into the container in hack/gitlab-runner-vm/executor/prepare.sh
  • Uses the same conditional array pattern as the existing openshell mount — the mount is skipped if the binary is not present on the host

Testing

  • shellcheck passes on the modified file
  • Existing prepare_validation_test.sh passes — all path validation cases still work correctly
  • Deploy to a runner VM and verify artifact upload succeeds (requires live GitLab environment)

Closes #6604

Post-script verification

  • Branch is not main/master (agent/6604-gitlab-runner-bind-mount)
  • Secret scan passed (gitleaks — d0d567bb7f882f797898e1d478948a4d82bfd1d6..HEAD)
  • PR body secret scan passed (gitleaks — no-git)

@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner August 26, 2026 13:30
@fullsend-ai-coder fullsend-ai-coder Bot added the ready-for-review Agent PR ready for human review label Aug 26, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 26, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:31 PM UTC · Completed 1:44 PM UTC

Commit: aa5d6b8 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $2.63

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullsend-ai-review fullsend-ai-review Bot added the risk/low PR risk: low label Aug 26, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 26, 2026

Copy link
Copy Markdown

Risk Assessment: low (1/5)

Details

Single-file, 12-line additive shell script fix by a bot with no protected paths, no security-sensitive files, and minimal git churn; issue scope precisely matches PR scope. Consistent with prior assessment — no signals changed.

Previous run

Risk Assessment: low (1/5)

Details

Single-file, 12-line additive shell script fix by a bot with no protected paths, no security-sensitive files, and minimal git churn; issue scope precisely matches PR scope. Consistent with prior assessment — no signals changed.

Previous run (2)

Risk Assessment: low (1/5)

Details

Single-file, 12-line additive shell script fix by a bot with no protected paths, no security-sensitive files, and minimal git churn; issue scope precisely matches PR scope.

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 26, 2026

Copy link
Copy Markdown

Looks good to me

Previous run

Looks good to me

Previous run (2)

Looks good to me

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Aug 26, 2026
@ggallen
ggallen force-pushed the agent/6604-gitlab-runner-bind-mount branch from aa5d6b8 to 8d008a1 Compare August 26, 2026 20:13
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 26, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 8:15 PM UTC · Completed 8:29 PM UTC

Commit: 8d008a1 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.17

fullsend-ai-review[bot]

This comment was marked as outdated.

The GitLab Runner custom executor routes all job stages — including
upload_artifacts_on_success — into the Podman container via run.sh.
The container is created from the job image, which does not include
the gitlab-runner binary. When the upload_artifacts stage runs, it
checks for `gitlab-runner --version`, fails to find it, and silently
disables artifact upload. This causes downstream jobs (e.g.
dispatch-mr-agents) to fail because they cannot find the artifacts.

Add a read-only bind-mount of the host's /usr/local/bin/gitlab-runner
binary into the container in prepare.sh, using the same conditional
array pattern as the existing openshell mount. The mount is skipped
if the binary is not present on the host. The host binary is
glibc-linked (Fedora), which is compatible with the glibc-based
fullsend-runner container image.

Note: pre-commit could not fetch remote hook repos (HTTP 403 in
sandbox). Ran shellcheck, trailing-whitespace, and end-of-file
checks directly — all passed.

Closes #6604
@ggallen
ggallen force-pushed the agent/6604-gitlab-runner-bind-mount branch from 8d008a1 to 6db12dd Compare August 26, 2026 21:16
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 26, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 9:18 PM UTC · Completed 9:30 PM UTC

Commit: 6db12dd · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $2.63

@ggallen
ggallen enabled auto-merge August 27, 2026 00:44
@ggallen
ggallen added this pull request to the merge queue Aug 27, 2026
Merged via the queue into main with commit 5c0bd8b Aug 27, 2026
41 checks passed
@ggallen
ggallen deleted the agent/6604-gitlab-runner-bind-mount branch August 27, 2026 01:38
@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 27, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 1:40 AM UTC · Completed 2:02 AM UTC

Commit: 6db12dd · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $5.70

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #6639 — bind-mount gitlab-runner into custom executor container

Overall assessment: Well-functioning workflow. The pipeline from issue to merge worked correctly at every stage. The fix was small (12 lines, 1 file), correct, and followed existing code patterns.

Timeline:

Agents repo: fullsend-ai/agents@main (commit 2fbb7da), discovered from review run 32974581213.

What went well:

  • Triage correctly assessed severity and recommended the right fix in 6 minutes
  • Code agent implemented the fix in under 8 minutes, following the existing OPENSHELL_MOUNT conditional-array pattern with good comments
  • Review agent correctly approved a clean change
  • Total necessary agent cost: $5.00 (triage $0.79, code $1.58, one review $2.63)

Evidence for existing issues (not proposed as new issues):

  • Redundant reviews on rebase-only force pushes: Two extra review runs ($5.80) produced identical results on unchanged diffs, bringing total review cost to $8.43. Adds evidence to #4401, #1287, #4596, and agents#108.
  • Review model/effort for simple changes: All three reviews used opus at high effort for a 12-line change. Adds evidence to #5777 (model routing by diff complexity).

Proposals filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-merge All reviewers approved — ready to merge ready-for-review Agent PR ready for human review risk/low PR risk: low

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gitlab dispatch-mr-agents job fails: Job dispatch not found in parent pipeline or does not have artifacts!

1 participant