feat(deploy-railway): implement real CLI-backed railway integration#230
feat(deploy-railway): implement real CLI-backed railway integration#230emil07770 wants to merge 1 commit into
Conversation
Replace stub with actual exec() calls to the Railway CLI for build and ship.
- build(): runs `railway up --detach --ci` to validate config without deploying
- ship(): runs `railway up --service <serviceId> --environment <env> --detach`
- Reads token via ctx.secret('RAILWAY_TOKEN'), throws descriptive error if missing
- Short-circuits on ctx.dryRun in ship()
- Parses deployment URL from railway stdout (https://*.up.railway.app)
- Passes cwd and env to exec for proper isolation
- Returns meta with projectId and environment for traceability
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Heads up — the failing |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
17 similar comments
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
|
🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: |
Summary
build()andship()with realexec()calls to the Railway CLIbuild(): runsrailway up --detach --cito validate configuration without triggering a full deployship(): runsrailway up --service <serviceId> --environment <env> --detachfor non-blocking deploysctx.secret('RAILWAY_TOKEN'), throws descriptive error if missingctx.dryRuninship()https://*.up.railway.app)cwd: ctx.projectDirandenv: { RAILWAY_TOKEN }toexecfor proper isolationmeta: { projectId, environment }for traceabilityTest plan
RAILWAY_TOKENsecret:sh1pt secret set RAILWAY_TOKEN <token>sh1pt ship deploy-railway --dry-runshould return{ id: 'dry-run' }without calling railwaysh1pt build deploy-railwayshould invokerailway up --detach --cifor config validationsh1pt ship deploy-railwayshould invokerailway up --service <id> --environment productionand return{ id, url }channel: betaorenvironment: staging, should deploy to staging envsh1pt secret set RAILWAY_TOKEN🤖 Generated with Claude Code