name: "Portainer Deploy Action" description: "Deploy or redeploy Portainer stacks directly from GitHub Actions." author: "Zoe" branding: icon: "upload-cloud" color: "blue" inputs: portainer-url: description: "Base API URL for your Portainer instance (e.g. https://portainer.example.com/api)" required: true portainer-token: description: "Portainer API token" required: true portainer-endpoint: description: "Portainer endpoint ID" required: true stack-name: description: "Name of the stack to create or redeploy" required: true repo-url: description: "Git repository URL containing the stack definition" required: true repo-ref: description: "Git reference (e.g. refs/heads/main)" required: true repo-compose-file: description: "Path to the docker-compose file within the repo" required: true repo-username: description: "Git username (if repository requires authentication)" required: false repo-password: description: "Git password/token (if repository requires authentication)" required: false tls-skip-verify: description: "Set to 'true' to skip TLS verification" required: false default: "false" env-data: description: "JSON array of environment variables to set in the stack (e.g. [{\"name\":\"VAR\",\"value\":\"value\"}])" required: false default: "[]" runs: using: "docker" image: "Dockerfile" env: PORTAINER_URL: ${{ inputs.portainer-url }} PORTAINER_TOKEN: ${{ inputs.portainer-token }} PORTAINER_ENDPOINT: ${{ inputs.portainer-endpoint }} STACK_NAME: ${{ inputs.stack-name }} REPO_URL: ${{ inputs.repo-url }} REPO_REF: ${{ inputs.repo-ref }} REPO_COMPOSE_FILE: ${{ inputs.repo-compose-file }} REPO_USERNAME: ${{ inputs.repo-username }} REPO_PASSWORD: ${{ inputs.repo-password }} TLS_SKIP_VERIFY: ${{ inputs.tls-skip-verify }} ENV_DATA: ${{ inputs.env-data }}