Here's some commentary and a list of links that people find helpful as they explore and evaluate GitHub Actions.
Actions is a CI/CD automation platform built natively within GitHub SCM. Check out the official introduction to GitHub Actions docs article to learn more. Here's the high-level gist of what Actions is:
- Automate everything. GitHub Actions uses script automation to automate core CI/CD activities (code scan, code compilation, e2e testing, packaging, deployment), a vast variety of SCM activities within GitHub, and a another vast variety of activities that take place outside of GitHub. Learn about events that trigger GitHub Actions automation here.
- Automate with workflows. Automation scripts or pipelines are called "workflows" and are written and stored in YAML as a workflow file in the .github/workflow folder in a GitHub repository.
- Reuse workflows. Workflows can be reused within other workflows (by a "caller" workflow) and nested several layers of reuse deep to avoid rework. Learn about reusing workflows here.
- Required workflows. GitHub admins can force repos to run workflows as required workflows that are managed from a central repo within the org
- Use actions. Workflows can make use of GitHub actions (custom extensions or applications for the GitHub Actions platform that perform a complex but frequently repeated task) to avoid rework. Learn about how workflows compare to actions here.
- Marketplace or custom actions. GitHub actions can be shared and leveraged from the global Actions Marketplace or they can be custom-built and shared internally
- Runner infrastructure. Workflows can be run on a) GitHub-hosted runner infrastructure (managed by GitHub in Azure) OR on b) self-hosted runner infrastructure (managed by the customer) in any public cloud or on-premises datacenter
- Cost and billing. Actions customer only pay for GitHub Actions usage when they execute workflows on runner infrastructure. If customers use GitHub-hosed runner infrastructure, they'll pay GitHub. If customers use self-hosted runner infrastructure in a public cloud, they'll pay their public cloud provider. Learn about GitHub-hosted runner billing here.
See what the GitHub Actions Product and Engineering teams are working on via the public GitHub Actions roadmap on GitHub Projects.
If you're interested in migrating to GitHub Actions from another CI/CD automation platform, GitHub has curated some formal documentation to help customers explore a migration. You'll find migration support docs related to:
- Migrating from Jenkins / GitHub Docs
- Migrating from CircleCI / GitHub Docs
- Migrating from Azure Pipelines / GitHub Docs
- Migrating from Travis CI / GitHub Docs
- Migrating from GitLab CI/CD / GitHub Docs
GitHub also offers a migration utility called GitHub Actions Importer to help with migrating from any of these five platforms listed above to GitHub Actions in automated fashion.
Please feel free to make use of the following Actions community resources to help with exploring migrations to Actions:
- Azure Pipelines to GitHub Actions by Christopher Burmeister
- The Journey from CircleCI to GitHub Actions by Evil Martians
- Migrating from Jenkins to GitHub Actions by DoltHub
- In full flow: moving from Jenkins to Actions – Part 1 by FreeAgent
- Migrating our CI to GitHub Actions by Tourlane
Runners is the conceptual term GitHub uses to describe the servers that GitHub Actions ephemerally provisions/deprovisions to run GitHub Actions workflows. With GitHub Actions, customers can use both GitHub-hosted runners AND/OR self-hosted runners.
GitHub-hosted runners are hosted in Azure on Azure Virtual Machine Scale Sets on GitHub's network and managed by GitHub. GitHub presently uses the Dv2/Dsv2 series of Azure Virtual Machines today. By some point in H2 of CY2023, GitHub will have upgraded the hosted runner fleet to a v5 series featuring AMD processors.
If a customer plans to self-host, GitHub recommends using the Kubernetes-based Actions Runner Controller to enable easier management of auto-scaled self-hosted runners.
Here is a layout of GitHub-Hosted runner types/sizes with included public pricing rates and hypothetical usage estimates below. If a customer opts for self-hosting, customers should prepare to pay their public cloud provider of choice for computer, storage, networking, security, monitoring, management and governance costs associated with self-hosting (as compared to paying GitHub for runner hosting).
You can use the informal Actions Cost Calculator to estimate what it might cost you to use GitHub-hosted runners. For self-hosted runners, please use the respective public cloud pricing calculators provided via the public cloud providers' websites.
View your Actions usage by following the instructions in the View your GitHub Actions usage formal docs article.
For a formal summary of events that can be used to configure triggers for GitHub Actions workflows, see the Events that trigger workflows formal docs article. Also note the graphic below:
The GitHub Actions actions listed below are some of the most popular actions that GitHub sees used in Actions workflows on a month-to-month basis. Click on each action link below to read about it on GitHub.
actions/checkout
actions/cache
actions/setup-node
actions/upload-artifact
actions/setup-python
aws-actions/configure-aws-credentials
actions/download-artifact
actions/deploy-pages
actions/setup-java
actions/setup-go
docker/login-action
actions/github-script
actions/upload-pages-artifact
ruby/setup-ruby
actions/jekyll-build-pages
docker/setup-buildx-action
docker/build-push-action
aws-actions/amazon-ecr-login
codecov/codecov-action
shivammathur/setup-php
styfle/cancel-workflow-action
google-github-actions/setup-gcloud
hashicorp/setup-terraform
google-github-actions/auth
cypress-io/github-action
actions/stale
dorny/paths-filter
ad-m/github-push-action
crazy-max/ghaction-github-pages
actions/setup-dotnet
actions-rs/toolchain
nick-fields/retry
rtCamp/action-slack-notify
Azure/login
September 1, 2022
GitHub Actions: Introducing the new, larger GitHub-hosted runners beta
September 16, 2022
How we tripled max concurrent jobs to boost performance of GitHub Actions
October 20, 2022
Improving navigation for GitHub Actions
November 2, 2022
GitHub partners with Arm to revolutionize Internet of Things software development with GitHub Actions
November 10, 2022
Introducing GitHub Actions Importer
December 8, 2022
Experiment: The hidden costs of waiting on slow build times
January 10, 2023
Introducing required workflows and configuration variables to GitHub Actions
January 19, 2023
How GitHub coordinates product releases with GitHub Projects and GitHub Actions
January 20, 2023
Bringing GitHub Actions to GitHub Mobile
February 2, 2023
Enabling branch deployments through IssueOps with GitHub Actions
March 1, 2023
GitHub Actions: Introducing faster GitHub-hosted x64 macOS runners
March 1, 2023
GitHub Actions Importer is now generally available