name: "Deploy to Cloudflare Workers with Wrangler"
branding:
  icon: "upload-cloud"
  color: "orange"
description: "Deploy your Cloudflare projects from GitHub using Wrangler"
runs:
  # Possible values: https://github.com/actions/runner/blob/main/src/Runner.Common/Util/NodeUtil.cs#L9
  using: "node20"
  main: "dist/index.mjs"
inputs:
  apiToken:
    description: "Your Cloudflare API Token"
    required: false
  accountId:
    description: "Your Cloudflare Account ID"
    required: false
  quiet:
    description: "Supresses output from Wrangler commands, defaults to `false`"
    required: false
    default: "false"
  environment:
    description: "The environment you'd like to deploy your Workers project to - must be defined in wrangler.toml"
  workingDirectory:
    description: "The relative path which Wrangler commands should be run from"
    required: false
  wranglerVersion:
    description: "The version of Wrangler you'd like to use to deploy your Workers project"
    required: false
  secrets:
    description: "A string of environment variable names, separated by newlines. These will be bound to your Worker as Secrets and must match the names of environment variables declared in `env` of this workflow."
    required: false
  preCommands:
    description: "Commands to execute before deploying the Workers project"
    required: false
  postCommands:
    description: "Commands to execute after deploying the Workers project"
    required: false
  command:
    description: 'The Wrangler command (along with any arguments) you wish to run. Multiple Wrangler commands can be run by separating each command with a newline. Defaults to `"deploy"`.'
    required: false
  vars:
    description: "A string of environment variable names, separated by newlines. These will be bound to your Worker using the values of matching environment variables declared in `env` of this workflow."
    required: false
  packageManager:
    description: "The package manager you'd like to use to install and run wrangler. If not specified, the preferred package manager will be inferred based on the presence of a lockfile or fallback to using npm if no lockfile is found. Valid values are `npm` | `pnpm` | `yarn` | `bun`."
    required: false
  gitHubToken:
    description: "GitHub Token"
    required: false
outputs:
  command-output:
    description: "The output of the Wrangler command (comes from stdout)"
  command-stderr:
    description: "The error output of the Wrangler command (comes from stderr)"
  deployment-url:
    description: "If the command was a Workers or Pages deployment, this will be the URL of the deployment"
  pages-deployment-alias-url:
    description: "If the command was a Pages deployment, this will be the URL of the deployment alias (if it exists) - needs wrangler >= 3.78.0"
  pages-deployment-id:
    description: "If the command was a Pages deployment, this will be the ID of the deployment - needs wrangler >= 3.81.0"
  pages-environment:
    description: "If the command was a Pages deployment, this will be the environment of the deployment - needs wrangler >= 3.81.0"