Skip to content

feat(coolify): add reusable Coolify deploy workflow - #42

Merged
JSisques merged 2 commits into
mainfrom
claude/coolify-deployment-workflows-w2krz8
Jul 20, 2026
Merged

feat(coolify): add reusable Coolify deploy workflow#42
JSisques merged 2 commits into
mainfrom
claude/coolify-deployment-workflows-w2krz8

Conversation

@JSisques

Copy link
Copy Markdown
Contributor

Summary

  • Adds coolify-deploy.yml, a thin reusable workflow that triggers a Coolify deploy via its API (GET /api/v1/deploy with a bearer token, resource UUID, and optional force), consistent with the "webhook token per repo" model described in the README.
  • Exposes should_release / release_type / next_tag as workflow_call outputs on release-train.yml. A push with no integrated changes since the last tag still completes the uses: call successfully (the internal release job is skipped, not failed), so a caller chaining a deploy job after this one needs an explicit signal that a release actually happened — needs.<job>.result alone can't tell the difference.
  • Documents both in the README, including the recommended consumer pattern (release job → deploy job gated on should_release == 'true', environment selected by github.ref_name).

Consumer usage

gardenia-api and gardenia-web PRs wire this up as a deploy job in their own release-train.yml, mapping develop/staging/main to COOLIFY_UUID_DEV/_STAGING/_PROD secrets.

Test plan

  • test.yml (shellcheck + release-train-detect tests) passes on this branch
  • Manual: once a consumer repo has COOLIFY_BASE_URL/COOLIFY_TOKEN/COOLIFY_UUID_* secrets configured, verify a push to develop triggers a real Coolify deploy and the job fails loudly on a bad token/UUID

Generated by Claude Code

claude added 2 commits July 20, 2026 09:47
Adds coolify-deploy.yml, a thin reusable workflow that triggers a
Coolify deploy via its API (GET /api/v1/deploy with a bearer token and
resource UUID). Also exposes should_release/release_type/next_tag as
outputs on release-train.yml so consumers can gate a chained deploy
job on an actual release having happened, since a push with no
integrated changes still completes the workflow_call successfully.
An unset UUID secret for a not-yet-configured environment resolves to
an empty string, not an error — required: true on a workflow_call
secret only enforces that the caller's secrets: block references the
key, not that the value is non-empty. Without this, a branch whose
Coolify environment doesn't exist yet (e.g. only prod is set up so
far) would fail the deploy job on every push with a confusing
404/422 from calling the API with a blank uuid. Detect empty secrets
up front and skip cleanly instead.
@JSisques
JSisques merged commit 058b9e7 into main Jul 20, 2026
2 checks passed
@JSisques
JSisques deleted the claude/coolify-deployment-workflows-w2krz8 branch July 20, 2026 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants