Blog Post

Discovering the Most Popular and Most Used Github Actions

November 13, 2020 Tom Hu

This post was contributed by Aleksey Kulikov, Founder of Treo (Page Speed Monitoring Service).


In 2018, GitHub announced a new CI/CD platform to automate workflows and cut down on development cycles called GitHub Actions. Since then, the GitHub Marketplace UI has gained an incredible amount of popularity, with over 4,000 Actions to help developers.

Earlier this year, I participated in building the ⭐️ Lighthouse CI Action. With GitHub Actions gaining more popularity, I wanted to know how well it was performing, along with many other Actions including the one for Codecov. Unfortunately, I couldn’t find any information about the popularity and usage of different actions.

I decided to build a custom script that crawls all categories and use Github Search (example query) to estimate usage in open-source projects.

The script crawled over 4,000 projects, and here are the highlights:

  • 9/10 most used actions are built by Github
  • A good action is small, focused, and composable. Learn from Github – their actions are terrific
  • Github Pages is a very popular use-case. I bet it could be a leading JAMstack platform if Github put a small, dedicated team to it
  • AWS, GCloud, Azure, and others already have official actions. Github Actions is the CI/CD platform.

Along with these findings, I have detailed top lists by usage, popularity, and a combination of both. GitHub-specific actions are denoted by the 😺 emoji, while Lighthouse CI actions are marked with a ⭐️, and the Codecov action is marked with a ☂️. The analysis script was run on September 9th, 2020.

GitHub Actions ranking by usage

The ranking is based on usage in open-source projects. It uses GitHub Search that queries appearance in .github/workflows folder (example query).

Rank Title Usage Repo
1 😺 Checkout 498507 actions/checkout
2 😺 Setup Node.js environment 85103 actions/setup-node
3 😺 Setup Python 65833 actions/setup-python
4 😺 Cache 39751 actions/cache
5 😺 Setup Java JDK 38759 actions/setup-java
6 😺 Upload a Build Artifact 37077 actions/upload-artifact
7 😺 Setup Go environment 19289 actions/setup-go
8 😺 Setup .NET Core SDK 16417 actions/setup-dotnet
9 😺 Download a Build Artifact 11979 actions/download-artifact
10 ☂️ Codecov 9979 codecov/codecov-action
11 GitHub Pages action 8426 peaceiris/actions-gh-pages
12 😺 Create a Release 8016 actions/create-release
13 😺 Upload a Release Asset 7631 actions/upload-release-asset
14 Azure WebApp 7461 Azure/webapps-deploy
15 Deploy to GitHub Pages 6761 JamesIves/github-pages-deploy-action
16 rust-toolchain 5920 actions-rs/toolchain
17 GitHub Action for Yarn 5372 Borales/actions-yarn
18 “Configure AWS Credentials” Action For GitHub Actions 4606 aws-actions/configure-aws-credentials
19 GitHub Push 4375 ad-m/github-push-action
20 Build and push Docker images 4340 docker/build-push-action
21 😺 First interaction 4216 actions/first-interaction
22 Create an issue 4194 JasonEtco/create-an-issue
23 rust-cargo 4132 actions-rs/cargo
24 Azure Container Registry Login 3629 Azure/docker-login
25 😺 Close Stale Issues 3437 actions/stale
26 Publish Docker 2807 elgohr/Publish-Docker-Github-Action
27 Amazon ECR “Login” Action for GitHub Actions 2780 aws-actions/amazon-ecr-login
28 Setup Ruby, JRuby and TruffleRuby 2770 ruby/setup-ruby
29 Setup gcloud environment 2760 GoogleCloudPlatform/github-actions
30 Setup Julia environment 2687 julia-actions/setup-julia
31 Amazon ECS “Deploy Task Definition” Action for GitHub Actions 2483 aws-actions/amazon-ecs-deploy-task-definition
32 Amazon ECS “Render Task Definition” Action for GitHub Actions 2476 aws-actions/amazon-ecs-render-task-definition
33 Coveralls GitHub Action 2358 coverallsapp/github-action
34 😺 GitHub Script 2355 actions/github-script
35 Flutter action 2312 subosito/flutter-action
36 Azure Login 2293 Azure/login
37 SSH Remote Commands 2146 appleboy/ssh-action
38 GH Release 2087 softprops/action-gh-release
39 😺 Labeler 2034 actions/labeler
40 GitHub Action for Firebase 1923 w9jds/firebase-action
41 Hugo setup 1813 peaceiris/actions-hugo
42 pypi-publish 1811 pypa/gh-action-pypi-publish
43 Create Pull Request 1775 peter-evans/create-pull-request
44 Docker Buildx 1607 crazy-max/ghaction-docker-buildx
45 Gradle Wrapper Validation 1600 gradle/wrapper-validation-action
46 Release Drafter 1480 release-drafter/release-drafter
47 Code Climate Coverage Action 1235 paambaati/codeclimate-action
48 setup-msbuild 1188 microsoft/setup-msbuild
49 😺 Setup Elixir 1159 actions/setup-elixir
50 Blog Post Workflow 1094 gautamkrishnar/blog-post-workflow

GitHub Actions ranking by popularity

The ranking is based on the number of stars, and the action should be used at least in 50 projects (to filter popular projects in GitHub Actions Marketplace).

Rank Title Stars Repo
1 Super-Linter 5500 github/super-linter
2 😺 Cache 1400 actions/cache
3 Release Drafter 1400 release-drafter/release-drafter
4 GitHub Pages action 1300 peaceiris/actions-gh-pages
5 Swift Doc 1200 SwiftDocOrg/swift-doc
6 Deploy to GitHub Pages 915 JamesIves/github-pages-deploy-action
7 😺 Checkout 912 actions/checkout
8 Image Actions 727 calibreapp/image-actions
9 Build and push Docker images 697 docker/build-push-action
10 SSH Remote Commands 663 appleboy/ssh-action
11 😺 Setup Node.js environment 650 actions/setup-node
12 😺 Create a Release 637 actions/create-release
13 Setup gcloud environment 627 GoogleCloudPlatform/github-actions
14 😺 Upload a Build Artifact 610 actions/upload-artifact
15 😺 GitHub Script 572 actions/github-script
16 ⭐️ Lighthouse CI Action 539 treosh/lighthouse-ci-action
17 Blog Post Workflow 526 gautamkrishnar/blog-post-workflow
18 Publish Docker 494 elgohr/Publish-Docker-Github-Action
19 Profile Readme Development Stats 461 anmol098/waka-readme-stats
20 ☂️ Codecov 438 codecov/codecov-action
21 Debugging with tmate 435 mxschmitt/action-tmate
22 FTP Deploy 424 SamKirkland/FTP-Deploy-Action
23 Automatic Rebase 410 cirrus-actions/rebase
24 GitHub Push 404 ad-m/github-push-action
25 😺 Labeler 392 actions/labeler
26 GitHub Action for Firebase 390 w9jds/firebase-action
27 Hugo setup 378 peaceiris/actions-hugo
28 😺 Upload a Release Asset 364 actions/upload-release-asset
29 Flutter action 364 subosito/flutter-action
30 S3 Sync 347 jakejarvis/s3-sync-action
31 Merge pull requests 346 pascalgn/automerge-action
32 GH Release 335 softprops/action-gh-release
33 Cypress.io 330 cypress-io/github-action
34 Automated releases for npm packages. 327 mikeal/merge-release
35 “Configure AWS Credentials” Action For GitHub Actions 313 aws-actions/configure-aws-credentials
36 Create Pull Request 297 peter-evans/create-pull-request
37 😺 Setup Go environment 268 actions/setup-go
38 😺 Setup Python 259 actions/setup-python
39 compressed-size-action 257 preactjs/compressed-size-action
40 Github Action for LaTeX 245 xu-cheng/latex-action
41 Serverless 240 serverless/github-action
42 😺 Close Stale Issues 236 actions/stale
43 Slack Notify 234 rtCamp/action-slack-notify
44 😺 Setup Java JDK 230 actions/setup-java
45 Telegram Notify 226 appleboy/telegram-action
46 Telegram Message Notify 226 appleboy/telegram-action
47 pypi-publish 216 pypa/gh-action-pypi-publish
48 SCP Command to Transfer Files 215 appleboy/scp-action
49 SCP Files 215 appleboy/scp-action
50 Lighthouse Audit 208 jakejarvis/lighthouse-action

GitHub Actions ranking

The ranking of GitHub Action based on popularity and usage.

Rank Title Stars Rank/Total Usage Rank/Total Repo
1 😺 Checkout 7/912 1/498507 actions/checkout
2 😺 Cache 2/1400 4/39751 actions/cache
3 😺 Setup Node.js environment 11/650 2/85103 actions/setup-node
4 GitHub Pages action 4/1300 11/8426 peaceiris/actions-gh-pages
5 😺 Upload a Build Artifact 14/610 6/37077 actions/upload-artifact
6 Deploy to GitHub Pages 6/915 15/6761 JamesIves/github-pages-deploy-action
7 😺 Create a Release 12/637 12/8016 actions/create-release
8 ☂️ Codecov 20/438 10/9979 codecov/codecov-action
9 😺 Setup Python 38/259 3/65833 actions/setup-python
10 Build and push Docker images 9/697 20/4340 docker/build-push-action
11 😺 Setup Go environment 37/268 7/19289 actions/setup-go
12 😺 Upload a Release Asset 28/364 13/7631 actions/upload-release-asset
13 😺 Setup Java JDK 44/230 5/38759 actions/setup-java
14 GitHub Push 24/404 19/4375 ad-m/github-push-action
15 Publish Docker 18/494 26/2807 elgohr/Publish-Docker-Github-Action
16 Setup gcloud environment 13/627 29/2760 GoogleCloudPlatform/github-actions
17 “Configure AWS Credentials” Action For GitHub Actions 35/313 18/4606 aws-actions/configure-aws-credentials
18 😺 Setup .NET Core SDK 55/198 8/16417 actions/setup-dotnet
19 😺 Download a Build Artifact 60/189 9/11979 actions/download-artifact
20 😺 GitHub Script 15/572 34/2355 actions/github-script
21 SSH Remote Commands 10/663 37/2146 appleboy/ssh-action
22 😺 Close Stale Issues 42/236 25/3437 actions/stale
23 Release Drafter 3/1400 46/1480 release-drafter/release-drafter
24 Flutter action 29/364 35/2312 subosito/flutter-action
25 😺 Labeler 25/392 39/2034 actions/labeler
26 rust-cargo 57/197 23/4132 actions-rs/cargo
27 GitHub Action for Firebase 26/390 40/1923 w9jds/firebase-action
28 GH Release 32/335 38/2087 softprops/action-gh-release
29 Hugo setup 27/378 41/1813 peaceiris/actions-hugo
30 rust-toolchain 81/143 16/5920 actions-rs/toolchain
31 Blog Post Workflow 17/526 50/1094 gautamkrishnar/blog-post-workflow
32 Setup Ruby, JRuby and TruffleRuby 61/188 28/2770 ruby/setup-ruby
33 Amazon ECR “Login” Action for GitHub Actions 67/173 27/2780 aws-actions/amazon-ecr-login
34 Create Pull Request 36/297 43/1775 peter-evans/create-pull-request
35 GitHub Action for Yarn 92/120 17/5372 Borales/actions-yarn
36 pypi-publish 47/216 42/1811 pypa/gh-action-pypi-publish
37 Cypress.io 33/330 52/1038 cypress-io/github-action
38 Coveralls GitHub Action 72/160 33/2358 coverallsapp/github-action
39 S3 Sync 30/347 55/969 jakejarvis/s3-sync-action
40 FTP Deploy 22/424 62/823 SamKirkland/FTP-Deploy-Action
41 Amazon ECS “Deploy Task Definition” Action for GitHub Actions 87/132 31/2483 aws-actions/amazon-ecs-deploy-task-definition
42 Docker Buildx 65/177 44/1607 crazy-max/ghaction-docker-buildx
43 Merge pull requests 31/346 64/807 pascalgn/automerge-action
44 Automatic Rebase 23/410 71/660 cirrus-actions/rebase
45 SCP Command to Transfer Files 48/215 60/848 appleboy/scp-action
46 SCP Files 49/215 61/832 appleboy/scp-action
47 HashiCorp – Setup Terraform 59/190 56/892 hashicorp/setup-terraform
48 action-slack 56/198 59/859 8398a7/action-slack
49 Create an issue 136/72 22/4194 JasonEtco/create-an-issue
50 Super-Linter 1/5500 92/395 github/super-linter
51 😺 Setup Elixir 88/130 49/1159 actions/setup-elixir
52 Run golangci-lint 80/144 54/975 golangci/golangci-lint-action
53 Auto Approve 78/146 58/860 hmarr/auto-approve-action
54 😺 First interaction 153/62 21/4216 actions/first-interaction
55 GitHub Pages 96/116 51/1080 crazy-max/ghaction-github-pages
56 Azure WebApp 171/56 14/7461 Azure/webapps-deploy
57 Slack Notify 43/234 79/579 rtCamp/action-slack-notify
58 Azure Container Registry Login 156/61 24/3629 Azure/docker-login
59 WordPress Plugin Deploy 54/204 78/582 10up/action-wordpress-plugin-deploy
60 Cancel Workflow Action 66/174 72/653 styfle/cancel-workflow-action
61 Setup Deno environment 82/143 65/784 denolib/setup-deno
62 Amazon ECS “Render Task Definition” Action for GitHub Actions 149/65 32/2476 aws-actions/amazon-ecs-render-task-definition
63 Github Tag Bump 62/186 77/590 anothrNick/github-tag-action
64 rust-clippy-check 84/138 66/738 actions-rs/clippy-check
65 Gradle Wrapper Validation 127/78 45/1600 gradle/wrapper-validation-action
66 Upload files to a GitHub release 114/95 53/999 svenstaro/upload-release-action
67 GitHub Action for DigitalOcean – doctl 70/164 76/598 digitalocean/action-doctl
68 Repository Dispatch 74/157 74/640 peter-evans/repository-dispatch
69 Github Action for LaTeX 40/245 96/370 xu-cheng/latex-action
70 Action For Semantic Release 97/115 69/686 cycjimmy/semantic-release-action
71 Create Release 128/78 57/874 ncipollo/release-action
72 Install Qt 100/111 73/649 jurplel/install-qt-action
73 NPM or Yarn install with caching 117/92 67/699 bahmutov/npm-install
74 Debugging with tmate 21/435 117/302 mxschmitt/action-tmate
75 Code Climate Coverage Action 162/59 47/1235 paambaati/codeclimate-action
76 Gatsby Publish 75/151 91/400 enriikke/gatsby-gh-pages-action
77 setup-java 118/90 70/661 olafurpg/setup-scala
78 ssh deploy 73/158 93/387 easingthemes/ssh-deploy
79 Deploy to GitHub Pages with Container 71/161 95/371 maxheld83/ghpages
80 Profile Readme Development Stats 19/461 124/263 anmol098/waka-readme-stats
81 ⭐️ Lighthouse CI Action 16/539 126/260 treosh/lighthouse-ci-action
82 pre-commit 109/99 83/486 pre-commit/action
83 Install Nix 125/83 75/613 cachix/install-nix-action
84 Add & Commit 144/68 68/693 EndBug/add-and-commit
85 Electron Builder Action 53/205 116/305 samuelmeuli/action-electron-builder
86 Netlify Actions 110/98 88/420 nwtgck/actions-netlify
87 Publish to npm 94/118 97/362 pascalgn/npm-publish-action
88 setup-msbuild 192/45 48/1188 microsoft/setup-msbuild
89 Setup Julia environment 237/29 30/2687 julia-actions/setup-julia
90 ansible-lint 124/84 90/401 ansible/ansible-lint-action
91 Slatify 101/111 102/334 homoluctus/slatify
92 Telegram Notify 45/226 131/249 appleboy/telegram-action
93 Telegram Message Notify 46/226 132/249 appleboy/telegram-action
94 Commit Linter 151/64 81/531 wagoid/commitlint-github-action
95 Azure Login 243/28 36/2293 Azure/login
96 Jekyll Actions 103/108 110/319 helaili/jekyll-action
97 rust-audit-check 152/64 86/457 actions-rs/audit-check
98 Black Code Formatter 76/150 128/256 lgeiger/black-action
99 Install SSH Key 106/102 113/310 shimataro/ssh-key-action
100 Docker Hub Description 129/78 104/326 peter-evans/dockerhub-description

The Codecov team is proud to support Aleksey Kulikov, Founder of Treo (Page Speed Monitoring Service) and contributor to the Lighthouse CI Action.

Comments


Leave a Reply

Your email address will not be published. Required fields are marked *