Github Actions is a CI/CD platform that gained a lot of popularity recently. I participated in building ⭐️Lighthouse CI Action and was curious how well it performs.
But Github Marketplace UI shows no ranking information. Essentially, It's a search with random results; at least, I don't understand the order. I couldn't find ⭐️Lighthouse CI Action in Continuous integration category after browsing 50 available pages (Each page shows 20 results, so it's possible to see only 1000 results, but CI category has 1469 😐).
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 4000 projects, and here are the highlights:
- 8/10 most used actions built by Github (detailed ranking is below).
- 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.
I'd love to know what you think about this ranking and Github Actions. Let me know on Twitter @alekseykulikov_.
| Rank | Title | Usage | Repo |
|---|---|---|---|
| 1 | 😺 Checkout | 353912 | actions/checkout |
| 2 | 😺 Setup Node.js environment | 77316 | actions/setup-node |
| 3 | 😺 Setup Python | 39827 | actions/setup-python |
| 4 | 😺 Setup Java JDK | 29519 | actions/setup-java |
| 5 | 😺 Upload a Build Artifact | 25177 | actions/upload-artifact |
| 6 | 😺 Setup Go environment | 14168 | actions/setup-go |
| 7 | 😺 Setup .NET Core SDK | 11544 | actions/setup-dotnet |
| 8 | 😺 Download a Build Artifact | 7791 | actions/download-artifact |
| 9 | Codecov | 6680 | codecov/codecov-action |
| 10 | GitHub Pages action | 5410 | peaceiris/actions-gh-pages |
| 11 | 😺 Create a Release | 5335 | actions/create-release |
| 12 | Azure WebApp | 4830 | Azure/webapps-deploy |
| 13 | Deploy to GitHub Pages | 4769 | JamesIves/github-pages-deploy-action |
| 14 | 😺 Upload a Release Asset | 4678 | actions/upload-release-asset |
| 15 | rust-toolchain | 3977 | actions-rs/toolchain |
| 16 | 😺 First interaction | 3229 | actions/first-interaction |
| 17 | "Configure AWS Credentials" Action For GitHub Actions | 3119 | aws-actions/configure-aws-credentials |
| 18 | Docker Login | 2975 | Azure/docker-login |
| 19 | GitHub Push | 2830 | ad-m/github-push-action |
| 20 | rust-cargo | 2820 | actions-rs/cargo |
| 21 | GitHub Action for Yarn | 2705 | Borales/actions-yarn |
| 22 | Publish Docker | 2449 | elgohr/Publish-Docker-Github-Action |
| 23 | 😺 Close Stale Issues | 2229 | actions/stale |
| 24 | Setup Julia environment | 2121 | julia-actions/setup-julia |
| 25 | Amazon ECR "Login" Action for GitHub Actions | 2092 | aws-actions/amazon-ecr-login |
| 26 | Setup gcloud environment | 2051 | GoogleCloudPlatform/github-actions |
| 27 | Amazon ECS "Render Task Definition" Action for GitHub Actions | 1905 | aws-actions/amazon-ecs-render-task-definition |
| 28 | Amazon ECS "Deploy Task Definition" Action for GitHub Actions | 1902 | aws-actions/amazon-ecs-deploy-task-definition |
| 29 | Build and push Docker images | 1753 | docker/build-push-action |
| 30 | Coveralls GitHub Action | 1716 | coverallsapp/github-action |
| 31 | 😺 Labeler | 1583 | actions/labeler |
| 32 | Flutter action | 1525 | subosito/flutter-action |
| 33 | Azure Login | 1408 | Azure/login |
| 34 | Setup Ruby, JRuby and TruffleRuby | 1385 | ruby/setup-ruby |
| 35 | GitHub Action for Firebase | 1345 | w9jds/firebase-action |
| 36 | SSH Remote Commands | 1339 | appleboy/ssh-action |
| 37 | Hugo setup | 1289 | peaceiris/actions-hugo |
| 38 | Create Pull Request | 1221 | peter-evans/create-pull-request |
| 39 | pypi-publish | 1154 | pypa/gh-action-pypi-publish |
| 40 | 😺 GitHub Script | 1112 | actions/github-script |
| 41 | Git Auto Commit | 1019 | stefanzweifel/git-auto-commit-action |
| 42 | 😺 Setup Elixir | 883 | actions/setup-elixir |
| 43 | Code Climate Coverage Action | 856 | paambaati/codeclimate-action |
| 44 | Gradle Wrapper Validation | 850 | gradle/wrapper-validation-action |
| 45 | GitHub Pages | 755 | crazy-max/ghaction-github-pages |
| 46 | Auto Approve | 698 | hmarr/auto-approve-action |
| 47 | S3 Sync | 676 | jakejarvis/s3-sync-action |
| 48 | action-slack | 647 | 8398a7/action-slack |
| 49 | Upload files to a GitHub release | 636 | svenstaro/upload-release-action |
| 50 | Cypress.io | 622 | cypress-io/github-action |
| Rank | Title | Stars | Repo |
|---|---|---|---|
| 1 | GitHub Pages action | 1000 | peaceiris/actions-gh-pages |
| 2 | Deploy to GitHub Pages | 739 | JamesIves/github-pages-deploy-action |
| 3 | 😺 Checkout | 691 | actions/checkout |
| 4 | Image Actions | 612 | calibreapp/image-actions |
| 5 | 😺 Setup Node.js environment | 527 | actions/setup-node |
| 6 | ⭐️ Lighthouse CI Action | 498 | treosh/lighthouse-ci-action |
| 7 | 😺 Upload a Build Artifact | 496 | actions/upload-artifact |
| 8 | Setup gcloud environment | 480 | GoogleCloudPlatform/github-actions |
| 9 | SSH Remote Commands | 480 | appleboy/ssh-action |
| 10 | 😺 Create a Release | 466 | actions/create-release |
| 11 | Publish Docker | 463 | elgohr/Publish-Docker-Github-Action |
| 12 | Build and push Docker images | 455 | docker/build-push-action |
| 13 | 😺 GitHub Script | 396 | actions/github-script |
| 14 | Automatic Rebase | 365 | cirrus-actions/rebase |
| 15 | Debugging with tmate | 356 | mxschmitt/action-tmate |
| 16 | FTP Deploy | 347 | SamKirkland/FTP-Deploy-Action |
| 17 | Codecov | 331 | codecov/codecov-action |
| 18 | GitHub Push | 323 | ad-m/github-push-action |
| 19 | 😺 Labeler | 313 | actions/labeler |
| 20 | GitHub Action for Firebase | 311 | w9jds/firebase-action |
| 21 | Hugo setup | 301 | peaceiris/actions-hugo |
| 22 | Automated releases for npm packages. | 300 | mikeal/merge-release |
| 23 | 😺 Upload a Release Asset | 290 | actions/upload-release-asset |
| 24 | Flutter action | 282 | subosito/flutter-action |
| 25 | S3 Sync | 274 | jakejarvis/s3-sync-action |
| 26 | Merge pull requests | 264 | pascalgn/automerge-action |
| 27 | Cypress.io | 261 | cypress-io/github-action |
| 28 | "Configure AWS Credentials" Action For GitHub Actions | 222 | aws-actions/configure-aws-credentials |
| 29 | 😺 Setup Go environment | 217 | actions/setup-go |
| 30 | Create Pull Request | 216 | peter-evans/create-pull-request |
| 31 | 😺 Setup Python | 207 | actions/setup-python |
| 32 | compressed-size-action | 202 | preactjs/compressed-size-action |
| 33 | Github Action for LaTeX | 200 | xu-cheng/latex-action |
| 34 | Serverless | 199 | serverless/github-action |
| 35 | 😺 Setup Java JDK | 193 | actions/setup-java |
| 36 | 😺 Close Stale Issues | 190 | actions/stale |
| 37 | Telegram Notify | 188 | appleboy/telegram-action |
| 38 | Telegram Message Notify | 188 | appleboy/telegram-action |
| 39 | Lighthouse Audit | 188 | jakejarvis/lighthouse-action |
| 40 | WordPress Plugin Deploy | 186 | 10up/action-wordpress-plugin-deploy |
| 41 | pypi-publish | 176 | pypa/gh-action-pypi-publish |
| 42 | webfactory/ssh-agent | 173 | webfactory/ssh-agent |
| 43 | Slack Notify | 172 | rtCamp/action-slack-notify |
| 44 | GitHub Action for SwiftLint | 166 | norio-nomura/action-swiftlint |
| 45 | 😺 Setup .NET Core SDK | 165 | actions/setup-dotnet |
| 46 | rust-cargo | 164 | actions-rs/cargo |
| 47 | Deploy to GitHub Pages with Container | 161 | maxheld83/ghpages |
| 48 | Deploy to Cloudflare Workers with Wrangler | 156 | cloudflare/wrangler-action |
| 49 | Git Auto Commit | 155 | stefanzweifel/git-auto-commit-action |
| 50 | SCP Files | 155 | appleboy/scp-action |
| Rank | Title | Stars Rank/Total | Usage Rank/Total | Repo |
|---|---|---|---|---|
| 1 | 😺 Checkout | 3/691 | 1/353912 | actions/checkout |
| 2 | 😺 Setup Node.js environment | 5/527 | 2/77316 | actions/setup-node |
| 3 | 😺 Upload a Build Artifact | 7/496 | 5/25177 | actions/upload-artifact |
| 4 | GitHub Pages action | 1/1000 | 10/5410 | peaceiris/actions-gh-pages |
| 5 | Deploy to GitHub Pages | 2/739 | 13/4769 | JamesIves/github-pages-deploy-action |
| 6 | 😺 Create a Release | 10/466 | 11/5335 | actions/create-release |
| 7 | Codecov | 17/331 | 9/6680 | codecov/codecov-action |
| 8 | 😺 Setup Python | 31/207 | 3/39827 | actions/setup-python |
| 9 | 😺 Setup Go environment | 29/217 | 6/14168 | actions/setup-go |
| 10 | 😺 Setup Java JDK | 35/193 | 4/29519 | actions/setup-java |
| 11 | 😺 Upload a Release Asset | 23/290 | 14/4678 | actions/upload-release-asset |
| 12 | Publish Docker | 11/463 | 22/2449 | elgohr/Publish-Docker-Github-Action |
| 13 | GitHub Push | 18/323 | 19/2830 | ad-m/github-push-action |
| 14 | 😺 Setup .NET Core SDK | 45/165 | 7/11544 | actions/setup-dotnet |
| 15 | Setup gcloud environment | 8/480 | 26/2051 | GoogleCloudPlatform/github-actions |
| 16 | "Configure AWS Credentials" Action For GitHub Actions | 28/222 | 17/3119 | aws-actions/configure-aws-credentials |
| 17 | Build and push Docker images | 12/455 | 29/1753 | docker/build-push-action |
| 18 | 😺 Download a Build Artifact | 54/153 | 8/7791 | actions/download-artifact |
| 19 | SSH Remote Commands | 9/480 | 36/1339 | appleboy/ssh-action |
| 20 | 😺 Labeler | 19/313 | 31/1583 | actions/labeler |
| 21 | 😺 Close Stale Issues | 36/190 | 23/2229 | actions/stale |
| 22 | rust-cargo | 46/164 | 20/2820 | actions-rs/cargo |
| 23 | Flutter action | 24/282 | 32/1525 | subosito/flutter-action |
| 24 | GitHub Action for Firebase | 20/311 | 35/1345 | w9jds/firebase-action |
| 25 | 😺 GitHub Script | 13/396 | 40/1112 | actions/github-script |
| 26 | Hugo setup | 21/301 | 37/1289 | peaceiris/actions-hugo |
| 27 | rust-toolchain | 70/115 | 15/3977 | actions-rs/toolchain |
| 28 | Create Pull Request | 30/216 | 38/1221 | peter-evans/create-pull-request |
| 29 | Amazon ECR "Login" Action for GitHub Actions | 64/129 | 25/2092 | aws-actions/amazon-ecr-login |
| 30 | S3 Sync | 25/274 | 47/676 | jakejarvis/s3-sync-action |
| 31 | pypi-publish | 41/176 | 39/1154 | pypa/gh-action-pypi-publish |
| 32 | Setup Ruby, JRuby and TruffleRuby | 52/154 | 34/1385 | ruby/setup-ruby |
| 33 | GitHub Action for Yarn | 79/101 | 21/2705 | Borales/actions-yarn |
| 34 | FTP Deploy | 16/347 | 53/584 | SamKirkland/FTP-Deploy-Action |
| 35 | Coveralls GitHub Action | 65/128 | 30/1716 | coverallsapp/github-action |
| 36 | Cypress.io | 27/261 | 50/622 | cypress-io/github-action |
| 37 | Git Auto Commit | 49/155 | 41/1019 | stefanzweifel/git-auto-commit-action |
| 38 | Automatic Rebase | 14/365 | 61/473 | cirrus-actions/rebase |
| 39 | Amazon ECS "Deploy Task Definition" Action for GitHub Actions | 82/98 | 28/1902 | aws-actions/amazon-ecs-deploy-task-definition |
| 40 | action-slack | 56/150 | 48/647 | 8398a7/action-slack |
| 41 | Auto Approve | 60/133 | 46/698 | hmarr/auto-approve-action |
| 42 | Docker Login | 119/58 | 18/2975 | Azure/docker-login |
| 43 | 😺 Setup Elixir | 72/113 | 42/883 | actions/setup-elixir |
| 44 | webfactory/ssh-agent | 42/173 | 59/508 | webfactory/ssh-agent |
| 45 | Merge pull requests | 26/264 | 68/414 | pascalgn/automerge-action |
| 46 | SCP Files | 50/155 | 56/527 | appleboy/scp-action |
| 47 | 😺 First interaction | 131/48 | 16/3229 | actions/first-interaction |
| 48 | WordPress Plugin Deploy | 40/186 | 62/455 | 10up/action-wordpress-plugin-deploy |
| 49 | SCP Command to Transfer Files | 51/155 | 57/527 | appleboy/scp-action |
| 50 | GitHub Pages | 83/97 | 45/755 | crazy-max/ghaction-github-pages |
| 51 | Azure WebApp | 153/38 | 12/4830 | Azure/webapps-deploy |
| 52 | rust-clippy-check | 68/122 | 58/522 | actions-rs/clippy-check |
| 53 | Gradle Wrapper Validation | 99/72 | 44/850 | gradle/wrapper-validation-action |
| 54 | Slack Notify | 43/172 | 73/388 | rtCamp/action-slack-notify |
| 55 | Setup Miniconda | 71/115 | 60/485 | goanpeca/setup-miniconda |
| 56 | Github Tag Bump | 55/152 | 69/413 | anothrNick/github-tag-action |
| 57 | Amazon ECS "Render Task Definition" Action for GitHub Actions | 139/45 | 27/1905 | aws-actions/amazon-ecs-render-task-definition |
| 58 | Upload files to a GitHub release | 102/71 | 49/636 | svenstaro/upload-release-action |
| 59 | Setup Deno environment | 67/123 | 67/415 | denolib/setup-deno |
| 60 | setup-java | 94/75 | 55/570 | olafurpg/setup-scala |
| 61 | Deploy to GitHub Pages with Container | 47/161 | 79/309 | maxheld83/ghpages |
| 62 | Code Climate Coverage Action | 121/54 | 43/856 | paambaati/codeclimate-action |
| 63 | Create Release | 105/69 | 52/587 | ncipollo/release-action |
| 64 | Debugging with tmate | 15/356 | 98/229 | mxschmitt/action-tmate |
| 65 | Github Action for LaTeX | 33/200 | 90/247 | xu-cheng/latex-action |
| 66 | Install Qt | 92/83 | 63/449 | jurplel/install-qt-action |
| 67 | ⭐️ Lighthouse CI Action | 6/498 | 107/204 | treosh/lighthouse-ci-action |
| 68 | Action For Semantic Release | 90/85 | 65/435 | cycjimmy/semantic-release-action |
| 69 | HashiCorp - Setup Terraform | 77/103 | 77/328 | hashicorp/setup-terraform |
| 70 | Slatify | 76/105 | 80/302 | homoluctus/slatify |
| 71 | Setup Julia environment | 188/27 | 24/2121 | julia-actions/setup-julia |
| 72 | NPM or Yarn install with caching | 97/73 | 71/405 | bahmutov/npm-install |
| 73 | Gatsby Publish | 61/132 | 91/245 | enriikke/gatsby-gh-pages-action |
| 74 | Create an issue | 106/68 | 70/407 | JasonEtco/create-an-issue |
| 75 | Install Nix | 114/63 | 74/383 | cachix/install-nix-action |
| 76 | Electron Builder Action | 53/154 | 106/208 | samuelmeuli/action-electron-builder |
| 77 | ssh deploy | 78/102 | 95/237 | easingthemes/ssh-deploy |
| 78 | Azure Login | 207/22 | 33/1408 | Azure/login |
| 79 | Setup MSBuild.exe | 142/44 | 66/430 | warrenbuckley/Setup-MSBuild |
| 80 | Commit Linter | 128/51 | 75/370 | wagoid/commitlint-github-action |
| 81 | GitHub Action for DigitalOcean - doctl | 62/131 | 109/199 | digitalocean/action-doctl |
| 82 | Run golangci-lint | 111/66 | 88/253 | golangci/golangci-lint-action |
| 83 | Docker Hub Description | 117/60 | 85/265 | peter-evans/dockerhub-description |
| 84 | rust-audit-check | 124/52 | 82/287 | actions-rs/audit-check |
| 85 | Automated releases for npm packages. | 22/300 | 134/152 | mikeal/merge-release |
| 86 | Build Number Generator | 96/74 | 97/230 | einaregilsson/build-number |
| 87 | setup-msbuild | 183/28 | 54/575 | microsoft/setup-msbuild |
| 88 | ansible-lint | 107/68 | 93/239 | ansible/ansible-lint-action |
| 89 | Run golangci-lint with reviewdog | 116/61 | 89/253 | reviewdog/action-golangci-lint |
| 90 | Deploy to Kubernetes cluster | 150/41 | 76/355 | Azure/k8s-deploy |
| 91 | pre-commit | 104/70 | 100/224 | pre-commit/action |
| 92 | GitHub Action for SwiftLint | 44/166 | 132/156 | norio-nomura/action-swiftlint |
| 93 | Telegram Notify | 37/188 | 143/146 | appleboy/telegram-action |
| 94 | GitHub Action for Slack | 66/127 | 129/158 | Ilshidur/action-slack |
| 95 | PR Labeler | 98/73 | 113/190 | TimonVS/pr-labeler-action |
| 96 | Automatic Releases | 162/35 | 81/288 | marvinpinto/action-automatic-releases |
| 97 | Black Code Formatter | 59/141 | 133/155 | lgeiger/black-action |
| 98 | Telegram Message Notify | 38/188 | 144/146 | appleboy/telegram-action |
| 99 | Install SSH Key | 95/75 | 116/181 | shimataro/ssh-key-action |
| 100 | Expo CLI | 57/145 | 137/151 | expo/expo-github-action |