A dependency-free node20 action that triggers application.deploy or compose.deploy, then follows the deployment to a terminal status so a failed build fails the CI run. Snapshots the deployment list before triggering, so a concurrent deployment is never mistaken for this one. Optionally points the application at a freshly built image first, which is what lets a workflow lint, test, push and deploy the same artifact.
128 lines
3.9 KiB
YAML
128 lines
3.9 KiB
YAML
name: Dokploy Deploy
|
|
description: Trigger a Dokploy application or Compose deployment and wait for it to finish.
|
|
author: maxvojtkov
|
|
|
|
branding:
|
|
icon: upload-cloud
|
|
color: purple
|
|
|
|
inputs:
|
|
host:
|
|
description: >-
|
|
Base URL of the Dokploy instance, e.g. https://dokploy.example.com.
|
|
A trailing /api is tolerated. Falls back to $DOKPLOY_HOST.
|
|
required: false
|
|
api-key:
|
|
description: >-
|
|
API token from Settings → Profile → API/CLI.
|
|
Falls back to $DOKPLOY_API_KEY.
|
|
required: false
|
|
|
|
# --- what to deploy: an id, or a name to look up -------------------------
|
|
application-id:
|
|
description: Application to act on.
|
|
required: false
|
|
compose-id:
|
|
description: Compose stack to act on.
|
|
required: false
|
|
project:
|
|
description: Project name, when looking the service up by name.
|
|
required: false
|
|
service:
|
|
description: >-
|
|
Application or Compose stack name, when looking it up by name.
|
|
Matches either the display name or the Docker service name.
|
|
required: false
|
|
environment:
|
|
description: Environment name. Defaults to the project's default environment.
|
|
required: false
|
|
|
|
# --- what to do ----------------------------------------------------------
|
|
action:
|
|
description: One of deploy, redeploy, start, stop, reload.
|
|
required: false
|
|
default: deploy
|
|
|
|
docker-image:
|
|
description: >-
|
|
Image to point the application at before deploying, e.g.
|
|
ghcr.io/acme/api:1.4.0. Switches the application's source type to Docker.
|
|
Applications only.
|
|
required: false
|
|
registry-username:
|
|
description: Username for a private registry, alongside docker-image.
|
|
required: false
|
|
registry-password:
|
|
description: Password or token for a private registry, alongside docker-image.
|
|
required: false
|
|
registry-url:
|
|
description: Registry URL for a private registry, alongside docker-image.
|
|
required: false
|
|
|
|
title:
|
|
description: Deployment title shown in Dokploy. Defaults to the short commit SHA.
|
|
required: false
|
|
description:
|
|
description: Deployment description. Defaults to repository, ref, actor and a link to the run.
|
|
required: false
|
|
|
|
# --- how to wait ---------------------------------------------------------
|
|
wait:
|
|
description: Wait for the deployment to reach a terminal status and fail the step if it errored.
|
|
required: false
|
|
default: "true"
|
|
timeout:
|
|
description: Seconds to wait for the deployment to finish.
|
|
required: false
|
|
default: "600"
|
|
poll-interval:
|
|
description: Seconds between deployment status checks.
|
|
required: false
|
|
default: "5"
|
|
request-timeout:
|
|
description: Seconds before a single API request is abandoned.
|
|
required: false
|
|
default: "60"
|
|
cancel-on-timeout:
|
|
description: Ask Dokploy to cancel the deployment when the timeout is hit.
|
|
required: false
|
|
default: "false"
|
|
|
|
logs:
|
|
description: When to print deployment logs — on-failure, always or never.
|
|
required: false
|
|
default: on-failure
|
|
log-tail:
|
|
description: Number of log lines to print.
|
|
required: false
|
|
default: "200"
|
|
|
|
insecure:
|
|
description: Skip TLS certificate verification. Only for self-signed certificates.
|
|
required: false
|
|
default: "false"
|
|
|
|
outputs:
|
|
status:
|
|
description: Terminal deployment status — done, error, cancelled, timed-out or triggered.
|
|
succeeded:
|
|
description: '"true" when the deployment finished successfully.'
|
|
deployment-id:
|
|
description: Id of the deployment this run started, when one was watched.
|
|
service-kind:
|
|
description: application or compose.
|
|
service-id:
|
|
description: Id of the resolved service.
|
|
application-id:
|
|
description: Resolved application id, empty for a Compose stack.
|
|
compose-id:
|
|
description: Resolved Compose id, empty for an application.
|
|
app-name:
|
|
description: Docker service name of the resolved service.
|
|
duration:
|
|
description: Seconds the step spent triggering and waiting.
|
|
|
|
runs:
|
|
using: node20
|
|
main: src/index.js
|