
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 | 498507 | actions/checkout | |
2 | 85103 | actions/setup-node | |
3 | 65833 | actions/setup-python | |
4 | 39751 | actions/cache | |
5 | 38759 | actions/setup-java | |
6 | 37077 | actions/upload-artifact | |
7 | 19289 | actions/setup-go | |
8 | 16417 | actions/setup-dotnet | |
9 | 11979 | actions/download-artifact | |
10 | 9979 | codecov/codecov-action | |
11 | GitHub Pages action | 8426 | peaceiris/actions-gh-pages |
12 | 8016 | actions/create-release | |
13 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 650 | actions/setup-node | |
12 | 637 | actions/create-release | |
13 | Setup gcloud environment | 627 | GoogleCloudPlatform/github-actions |
14 | 610 | actions/upload-artifact | |
15 | 572 | actions/github-script | |
16 | 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 | 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 | 392 | actions/labeler | |
26 | GitHub Action for Firebase | 390 | w9jds/firebase-action |
27 | Hugo setup | 378 | peaceiris/actions-hugo |
28 | 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 | 268 | actions/setup-go | |
38 | 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 | 236 | actions/stale | |
43 | Slack Notify | 234 | rtCamp/action-slack-notify |
44 | 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 | 7/912 | 1/498507 | actions/checkout | |
2 | 2/1400 | 4/39751 | actions/cache | |
3 | 11/650 | 2/85103 | actions/setup-node | |
4 | GitHub Pages action | 4/1300 | 11/8426 | peaceiris/actions-gh-pages |
5 | 14/610 | 6/37077 | actions/upload-artifact | |
6 | Deploy to GitHub Pages | 6/915 | 15/6761 | JamesIves/github-pages-deploy-action |
7 | 12/637 | 12/8016 | actions/create-release | |
8 | 20/438 | 10/9979 | codecov/codecov-action | |
9 | 38/259 | 3/65833 | actions/setup-python | |
10 | Build and push Docker images | 9/697 | 20/4340 | docker/build-push-action |
11 | 37/268 | 7/19289 | actions/setup-go | |
12 | 28/364 | 13/7631 | actions/upload-release-asset | |
13 | 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 | 55/198 | 8/16417 | actions/setup-dotnet | |
19 | 60/189 | 9/11979 | actions/download-artifact | |
20 | 15/572 | 34/2355 | actions/github-script | |
21 | SSH Remote Commands | 10/663 | 37/2146 | appleboy/ssh-action |
22 | 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 | 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 | 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 | 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 | 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.