fix(ci): add workflow_call trigger so deploy.yml can reuse it#25
Merged
Conversation
deploy.yml's first job does `uses: ./.github/workflows/ci.yml` (the reusable-workflow syntax), but ci.yml only declared `push` and `pull_request` triggers. GitHub Actions rejects the deploy workflow at parse time with a 0-second failure on every merge. This is the upstream cause of the broken auto-deploy that PR #24 appeared to fix at the SSH layer -- PR #24's path correction is correct, but the workflow never got far enough to use it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #24 added `COPY SKILL.md ./SKILL.md` to the Dockerfile so the /SKILL.md route in the new agent-discovery plugin has a file to read, but `.dockerignore` had `*.md` excluding all markdown from the build context. The docker-build job failed silently in PR #24 (other CI jobs were green so the merge proceeded) and resurfaced on PR #25 once attention was on the deploy pipeline. Adds `!SKILL.md` to un-ignore the one markdown file we need at runtime, with an inline comment so the reason for the exception is obvious. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
MorganOnCode
added a commit
that referenced
this pull request
May 15, 2026
The VPS is reachable only over Tailscale; SSH is closed to the public internet. Re-enabling auto-deploy via appleboy/ssh-action would require widening the firewall to GitHub's runner IP ranges -- a strictly worse security posture for a payment facilitator with a live mainnet seed phrase on disk. Changes: - Delete .github/workflows/deploy.yml (was broken on every merge anyway: parse-time failures before #25, missing DEPLOY_* secrets after #25) - Document the canonical phased manual deploy in docs/operations.md (matches the pattern we used for the 2026-05-15 quick-wins deploy) - Add a "production deploys are manual by design" section to docs/deployment.md explaining why and pointing to the runbook - CI (.github/workflows/ci.yml) stays untouched -- it runs only inside the runner with no outbound SSH If auto-deploy is ever wanted again, the right shape is the Tailscale GitHub Action, which adds the runner to the tailnet for the deploy duration without opening any public port. Deferred until there's need. Co-Authored-By: Claude Opus 4.7 (1M context) <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.
The actual cause of the broken auto-deploy
Found while verifying PR #24's auto-deploy on master: the deploy workflow failed at parse time again, this time not at the SSH path (which #24 fixed) but at the preflight step.
`deploy.yml` line 16:
```yaml
jobs:
ci:
uses: ./.github/workflows/ci.yml
```
This is GitHub's reusable-workflow syntax. For it to work, the called workflow (`ci.yml`) must declare `workflow_call:` in its `on:` block. It didn't — only `push` and `pull_request` were listed. GitHub Actions rejects the deploy workflow before it starts, which is why every deploy run shows a 0-second `failure` with no logs.
So PR #24's path correction was right, but the workflow never got far enough to use it. This is the upstream cause.
Fix
One-line addition to `.github/workflows/ci.yml` `on:` block:
```yaml
workflow_call:
```
Test plan
After merge:
🤖 Generated with Claude Code