Type object
File match action.yml action.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/github-action/latest.json
Source https://www.schemastore.org/github-action.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Properties

name string required

The name of your action. GitHub displays the name in the Actions tab to help visually identify actions in each job.

description string required

A short description of the action.

author string

The name of the action's author.

inputs object

Input parameters allow you to specify data that the action expects to use during runtime. GitHub stores input parameters as environment variables. Input ids with uppercase letters are converted to lowercase during runtime. We recommended using lowercase input ids.

outputs
branding object

You can use a color and Feather icon to create a badge to personalize and distinguish your action. Badges are shown next to your action name in GitHub Marketplace.

2 nested properties
color string

The background color of the badge.

Values: "white" "black" "yellow" "blue" "green" "orange" "red" "purple" "gray-dark"
icon string

The name of the Feather icon to use.

Values: "activity" "airplay" "alert-circle" "alert-octagon" "alert-triangle" "align-center" "align-justify" "align-left" "align-right" "anchor" "aperture" "archive" "arrow-down-circle" "arrow-down-left" "arrow-down-right" "arrow-down" "arrow-left-circle" "arrow-left" "arrow-right-circle" "arrow-right" "arrow-up-circle" "arrow-up-left" "arrow-up-right" "arrow-up" "at-sign" "award" "bar-chart-2" "bar-chart" "battery-charging" "battery" "bell-off" "bell" "bluetooth" "bold" "book-open" "book" "bookmark" "box" "briefcase" "calendar" "camera-off" "camera" "cast" "check-circle" "check-square" "check" "chevron-down" "chevron-left" "chevron-right" "chevron-up" "chevrons-down" "chevrons-left" "chevrons-right" "chevrons-up" "circle" "clipboard" "clock" "cloud-drizzle" "cloud-lightning" "cloud-off" "cloud-rain" "cloud-snow" "cloud" "code" "command" "compass" "copy" "corner-down-left" "corner-down-right" "corner-left-down" "corner-left-up" "corner-right-down" "corner-right-up" "corner-up-left" "corner-up-right" "cpu" "credit-card" "crop" "crosshair" "database" "delete" "disc" "dollar-sign" "download-cloud" "download" "droplet" "edit-2" "edit-3" "edit" "external-link" "eye-off" "eye" "fast-forward" "feather" "file-minus" "file-plus" "file-text" "file" "film" "filter" "flag" "folder-minus" "folder-plus" "folder" "gift" "git-branch" "git-commit" "git-merge" "git-pull-request" "globe" "grid" "hard-drive" "hash" "headphones" "heart" "help-circle" "home" "image" "inbox" "info" "italic" "layers" "layout" "life-buoy" "link-2" "link" "list" "loader" "lock" "log-in" "log-out" "mail" "map-pin" "map" "maximize-2" "maximize" "menu" "message-circle" "message-square" "mic-off" "mic" "minimize-2" "minimize" "minus-circle" "minus-square" "minus" "monitor" "moon" "more-horizontal" "more-vertical" "move" "music" "navigation-2" "navigation" "octagon" "package" "paperclip" "pause-circle" "pause" "percent" "phone-call" "phone-forwarded" "phone-incoming" "phone-missed" "phone-off" "phone-outgoing" "phone" "pie-chart" "play-circle" "play" "plus-circle" "plus-square" "plus" "pocket" "power" "printer" "radio" "refresh-ccw" "refresh-cw" "repeat" "rewind" "rotate-ccw" "rotate-cw" "rss" "save" "scissors" "search" "send" "server" "settings" "share-2" "share" "shield-off" "shield" "shopping-bag" "shopping-cart" "shuffle" "sidebar" "skip-back" "skip-forward" "slash" "sliders" "smartphone" "speaker" "square" "star" "stop-circle" "sun" "sunrise" "sunset" "table" "tablet" "tag" "target" "terminal" "thermometer" "thumbs-down" "thumbs-up" "toggle-left" "toggle-right" "trash-2" "trash" "trending-down" "trending-up" "triangle" "truck" "tv" "type" "umbrella" "underline" "unlock" "upload-cloud" "upload" "user-check" "user-minus" "user-plus" "user-x" "user" "users" "video-off" "video" "voicemail" "volume-1" "volume-2" "volume-x" "volume" "watch" "wifi-off" "wifi" "wind" "x-circle" "x-square" "x" "zap-off" "zap" "zoom-in" "zoom-out"

Definitions

expressionSyntax string
stringContainingExpressionSyntax string
pre-if string

Allows you to define conditions for the pre: action execution. The pre: action will only run if the conditions in pre-if are met. If not set, then pre-if defaults to always(). Note that the step context is unavailable, as no steps have run yet.

post-if string

Allows you to define conditions for the post: action execution. The post: action will only run if the conditions in post-if are met. If not set, then post-if defaults to always().

runs-javascript object

Configures the path to the action's code and the application used to execute the code.

using enum required

The application used to execute the code specified in main.

Values: "node12" "node16" "node20" "node24"
main string required

The file that contains your action code. The application specified in using executes this file.

pre string

Allows you to run a script at the start of a job, before the main: action begins. For example, you can use pre: to run a prerequisite setup script. The application specified with the using syntax will execute this file. The pre: action always runs by default but you can override this using pre-if.

pre-if string

Allows you to define conditions for the pre: action execution. The pre: action will only run if the conditions in pre-if are met. If not set, then pre-if defaults to always(). Note that the step context is unavailable, as no steps have run yet.

post string

Allows you to run a script at the end of a job, once the main: action has completed. For example, you can use post: to terminate certain processes or remove unneeded files. The application specified with the using syntax will execute this file. The post: action always runs by default but you can override this using post-if.

post-if string

Allows you to define conditions for the post: action execution. The post: action will only run if the conditions in post-if are met. If not set, then post-if defaults to always().

runs-composite object

Configures the path to the composite action, and the application used to execute the code.

using const: "composite" required

To use a composite run steps action, set this to 'composite'.

Constant: "composite"
steps object[] required

The run steps that you plan to run in this action.

runs-docker object

Configures the image used for the Docker action.

using const: "docker" required

You must set this value to 'docker'.

Constant: "docker"
image string required

The Docker image to use as the container to run the action. The value can be the Docker base image name, a local Dockerfile in your repository, or a public image in Docker Hub or another registry. To reference a Dockerfile local to your repository, use a path relative to your action metadata file. The docker application will execute this file.

Specifies a key/value map of environment variables to set in the container environment.

entrypoint string

Overrides the Docker ENTRYPOINT in the Dockerfile, or sets it if one wasn't already specified. Use entrypoint when the Dockerfile does not specify an ENTRYPOINT or you want to override the ENTRYPOINT instruction. If you omit entrypoint, the commands you specify in the Docker ENTRYPOINT instruction will execute. The Docker ENTRYPOINT instruction has a *shell* form and *exec* form. The Docker ENTRYPOINTdocumentation recommends using the *exec* form of theENTRYPOINT` instruction.

pre-entrypoint string

Allows you to run a script before the entrypoint action begins. For example, you can use pre-entrypoint: to run a prerequisite setup script. GitHub Actions uses docker run to launch this action, and runs the script inside a new container that uses the same base image. This means that the runtime state is different from the main entrypoint container, and any states you require must be accessed in either the workspace, HOME, or as a STATE_ variable. The pre-entrypoint: action always runs by default but you can override this using pre-if.

pre-if string

Allows you to define conditions for the pre: action execution. The pre: action will only run if the conditions in pre-if are met. If not set, then pre-if defaults to always(). Note that the step context is unavailable, as no steps have run yet.

post-entrypoint string

Allows you to run a cleanup script once the runs.entrypoint action has completed. GitHub Actions uses docker run to launch this action. Because GitHub Actions runs the script inside a new container using the same base image, the runtime state is different from the main entrypoint container. You can access any state you need in either the workspace, HOME, or as a STATE_ variable. The post-entrypoint: action always runs by default but you can override this using post-if.

post-if string

Allows you to define conditions for the post: action execution. The post: action will only run if the conditions in post-if are met. If not set, then post-if defaults to always().

args string[]

An array of strings that define the inputs for a Docker container. Inputs can include hardcoded strings. GitHub passes the args to the container's ENTRYPOINT when the container starts up. The args are used in place of the CMD instruction in a Dockerfile. If you use CMD in your Dockerfile, use the guidelines ordered by preference:

  • Document required arguments in the action's README and omit them from the CMD instruction.
  • Use defaults that allow using the action without specifying any args.
  • If the action exposes a --help flag, or something similar, use that to make your action self-documenting.
outputs object

Output parameters allow you to declare data that an action sets. Actions that run later in a workflow can use the output data set in previously run actions. For example, if you had an action that performed the addition of two inputs (x + y = z), the action could output the sum (z) for other actions to use as an input. If you don't declare an output in your action metadata file, you can still set outputs and use them in a workflow.

outputs-composite object

Output parameters allow you to declare data that an action sets. Actions that run later in a workflow can use the output data set in previously run actions. For example, if you had an action that performed the addition of two inputs (x + y = z), the action could output the sum (z) for other actions to use as an input. If you don't declare an output in your action metadata file, you can still set outputs and use them in a workflow.