Skip to content

Instantly share code, notes, and snippets.

@dane-joh
Last active June 5, 2023 16:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dane-joh/833c04c3704cdebba15aa46d3aab714d to your computer and use it in GitHub Desktop.
Save dane-joh/833c04c3704cdebba15aa46d3aab714d to your computer and use it in GitHub Desktop.

Here's some commentary and a list of links that people find helpful as they explore and evaluate GitHub Actions.

GitHub Actions 101

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.

GitHub Actions Roadmap

See what the GitHub Actions Product and Engineering teams are working on via the public GitHub Actions roadmap on GitHub Projects.

Migrating to GitHub Actions

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:

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:

GitHub Actions Runners

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).

Screenshot 2023-04-13 at 2 30 18 PM

GitHub Actions Costs & Billing

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.

Screenshot 2023-04-13 at 2 37 23 PM

View your Actions usage by following the instructions in the View your GitHub Actions usage formal docs article.

GitHub Actions Triggering Events

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:

Screenshot 2023-04-13 at 2 41 44 PM

GitHub Actions Marketplace - Most Popular Marketplace Actions (By Use)

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

GitHub Actions Blog Posts

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment