Deploy Dokploy applications from GitHub and Gitea Actions
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.
This commit is contained in:
127
action.yml
Normal file
127
action.yml
Normal file
@@ -0,0 +1,127 @@
|
||||
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
|
||||
Reference in New Issue
Block a user