About GitHub Actions

GitHub Actions enables you to create custom software development life cycle (SDLC) workflows directly in your GitHub repository.

GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, and GitHub One. GitHub Actions is not available for private repositories owned by accounts using legacy per-repository plans. For more information, see "GitHub's products."

In this article

About GitHub Actions

GitHub Actions help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues. You can write individual tasks, called actions, and combine them to create a custom workflow. Workflows are custom automated processes that you can set up in your repository to build, test, package, release, or deploy any code project on GitHub.

With GitHub Actions you can build end-to-end continuous integration (CI) and continuous deployment (CD) capabilities directly in your repository. GitHub Actions powers GitHub's built-in continuous integration service. For more information, see "About continuous integration."

Workflows run in Linux, macOS, Windows, and containers on GitHub-hosted machines, called 'runners'. Alternatively, you can also host your own runners to run workflows on machines you own or manage. For more information see, "About self-hosted runners."

You can create workflows using actions defined in your repository, open source actions in a public repository on GitHub, or a published Docker container image. Workflows in forked repositories don't run by default.

You can discover actions to use in your workflow on GitHub and build actions to share with the GitHub community. For more information on creating a custom action, see "Creating actions."

You can create a workflow file configured to run on specific events. For more information, see "Configuring a workflow" and "Workflow syntax for GitHub Actions".

For a definition of common terms, see "Core concepts for GitHub Actions."

Discovering actions in the GitHub community

GitHub Marketplace is a central location for you to find, share, and use actions built by the GitHub community. For more information, see "Using actions from GitHub Marketplace in your workflow."

You can also customize your project with open source actions shared in public repositories on GitHub and use actions built by GitHub in the actions organization.

Disabling or limiting GitHub Actions for your repository or organization

By default, GitHub Actions is enabled on all repositories and organizations. You can choose to disable GitHub Actions or limit them to private actions only, which means that people can only use actions that exist in your repository.

For more information, see "Disabling or limiting GitHub Actions for a repository" or "Disabling or limiting GitHub Actions for your organization."

Notifications for workflow runs

If you enable email or web notifications for GitHub Actions, you'll receive a notification when any workflow runs that you've triggered have completed. The notification will include the workflow run's status (including successful, failed, neutral, and canceled runs). You can also choose to receive a notification only when a workflow run has failed.

You can also see the status of workflow runs on a repository's Actions tab. For more information, see "Managing a workflow run."

Usage limits

There are some limits on GitHub Actions usage, and will vary depending on whether you use GitHub-hosted or self-hosted runners. These limits are subject to change.

  • Job execution time - Each job in a workflow can run for up to 6 hours of execution time. If a job reaches this limit, the job is terminated and fails to complete. This limit does not apply to self-hosted runners.

  • Workflow run time - Each workflow run is limited to 72 hours. If a workflow run reaches this limit, the workflow run is cancelled. This limit also applies to self-hosted runners.

  • Job queue time - Each job for self-hosted runners can be queued for a maximum of 24 hours. If a self-hosted runner does not start executing the job within this limit, the job is terminated and fails to complete. This limit does not apply to GitHub-hosted runners.

  • API requests - You can execute up to 1000 API requests in an hour across all actions within a repository. If exceeded, additional API calls will fail, which might cause jobs to fail. This limit also applies to self-hosted runners.

  • Concurrent jobs - The number of concurrent jobs you can run in your account depends on your GitHub plan, as indicated in the following table. If exceeded, any additional jobs are queued. There are no concurrency limits for self-hosted runners.

    GitHub planTotal concurrent jobsMaximum concurrent macOS jobs
  • Job matrix - A job matrix can generate a maximum of 256 jobs per workflow run. This limit also applies to self-hosted runners.

Usage policy

In addition to the usage limits, you must ensure that you use GitHub Actions within the GitHub Terms of Service. For more information on GitHub Actions-specific terms, see the GitHub Additional Product Terms.

About billing for GitHub Actions

GitHub Actions usage is free for public repositories. For private repositories, each GitHub account receives a certain amount of free minutes and storage, depending on the product used with the account. For more information, see "About billing for GitHub Actions."

Contacting support

If you need help with anything related to workflow configuration, such as syntax, GitHub-hosted runners, or building actions, look for an existing topic or start a new one in the GitHub Community Support's GitHub Actions board.

If you have feedback or feature requests for GitHub Actions, share those in the Feedback form for GitHub Actions.

Contact GitHub Support or GitHub Premium Support for any of the following, whether your use or intended use falls into the usage limit categories:

  • If you believe your account has been incorrectly restricted
  • If you encounter an unexpected error when executing one of your Actions, for example: a unique ID
  • If you encounter a situation where existing behavior contradicts expected, but not always documented, behavior

Further reading

Ask a human

Can't find what you're looking for?

Contact us