Creating GitHub Actions

Note: GitHub Actions is currently available in public beta, which means you should avoid using it for high-value workflows and content during this beta period.

Features and requirements may change at any time during this period. You can request to join the public beta on the GitHub Actions page. If you're participating in the beta, please contact support if you have any questions.

GitHub Actions are code run in Docker containers. The Docker container executes in a runtime environment that gives the action access to a filesystem and environment variables. You can set customized secrets and environment variables for each action you include in your workflow. GitHub also sets some environment variables for an action to use. Production secrets should not be stored in the API during the limited public beta period.

GitHub Actions are event-driven. When an event triggers a workflow, each action executes in the order defined by the workflow. An action can't trigger other workflows. See "Workflow limitations" for more details.

You can create your own actions in a repository, use actions in a public GitHub repository, and use actions in a published Docker container image. Use or extend actions in the GitHub Marketplace or one of GitHub's pre-built actions, which perform common GitHub workflows like deploying code and publishing npm modules.

Creating a new action

You can create actions in a repository you own by adding a Dockerfile. To share GitHub Actions with the GitHub community, your repository must be public.

Creating a Docker container

GitHub Actions execute in Docker containers. An action can use an existing publicly available Docker image, or you can create your own Docker image by including a Dockerfile with your code.

Accessing the runtime environment

GitHub Actions execute in a runtime environment with access to a filesystem and environment variables to perform tasks.