100 Useful GitHub Actions for Lean Software Teams
GitHub Actions can turn a repository into a dependable operating surface for a small software team: code can be tested on every pull request, releases can follow a repeatable path, and routine repository work can happen without a manual checklist. For solo founders, that consistency matters as much as speed.
“Best” is necessarily contextual. The 100 actions below are not a universal ranking; they are a working shortlist of widely useful options across common workflows. Before adopting any action, review its source, maintenance activity, permissions, pinned version, documentation, and the data it can access.
Repository and runtime setup
- actions/checkout — Checks repository code out for a workflow job.
- actions/cache — Caches dependency directories and other reusable files.
- actions/setup-node — Installs a selected Node.js version.
- actions/setup-python — Sets up Python for a job.
- actions/setup-java — Configures Java distributions and versions.
- actions/setup-go — Installs Go for builds and tests.
- actions/setup-dotnet — Sets up the.NET SDK.
- ruby/setup-ruby — Installs Ruby and works with Bundler.
- shivammathur/setup-php — Configures PHP versions and extensions.
- pnpm/action-setup — Installs the pnpm package manager.
- oven-sh/setup-bun — Sets up the Bun runtime.
- denoland/setup-deno — Installs Deno for JavaScript and TypeScript tasks.
- gradle/actions/setup-gradle — Prepares Gradle with workflow-oriented caching.
- hashicorp/setup-terraform — Installs Terraform for infrastructure workflows.
- hashicorp/setup-packer — Sets up Packer for image-building jobs.
Build artifacts, containers, and automation helpers
- actions/upload-artifact — Saves logs, packages, reports, or build outputs.
- actions/download-artifact — Retrieves artifacts from another job or workflow.
- actions/github-script — Runs JavaScript against the GitHub API.
- docker/setup-qemu-action — Enables emulation support for multi-platform container builds.
- docker/setup-buildx-action — Sets up Docker Buildx.
- docker/login-action — Authenticates Docker to a container registry.
- docker/build-push-action — Builds and optionally pushes container images.
- docker/metadata-action — Produces image tags and labels from Git context.
- docker/scout-action — Runs Docker Scout commands in a workflow.
- anchore/scan-action — Scans container images and filesystems.
- softprops/action-gh-release — Creates GitHub releases and attaches files.
- ncipollo/release-action — Creates or updates releases from a workflow.
- svenstaro/upload-release-action — Uploads assets to an existing release.
- release-drafter/release-drafter — Builds draft release notes from pull request labels.
- cycjimmy/semantic-release-action — Runs semantic-release in GitHub Actions.
Testing, quality, and coverage
- github/super-linter — Runs a broad collection of linters.
- rhysd/actionlint — Lints GitHub Actions workflow files.
- pre-commit/action — Runs pre-commit hooks in CI.
- reviewdog/action-eslint — Reports ESLint findings on pull requests.
- reviewdog/action-shellcheck — Reviews shell scripts with ShellCheck.
- reviewdog/action-actionlint — Surfaces workflow lint results in reviews.
- cypress-io/github-action — Runs Cypress end-to-end tests.
- microsoft/playwright-github-action — Installs Playwright browser dependencies.
- browser-actions/setup-chrome — Installs Chrome for browser automation.
- codecov/codecov-action — Uploads coverage reports to Codecov.
- coverallsapp/github-action — Sends coverage data to Coveralls.
- davelosert/vitest-coverage-report-action — Adds Vitest coverage reporting to pull requests.
- aquasecurity/trivy-action — Runs Trivy vulnerability and misconfiguration scans.
- gitleaks/gitleaks-action — Scans commits and files for potential secrets.
- terraform-linters/setup-tflint — Installs TFLint for Terraform checks.
Security and dependency review
- github/codeql-action/init — Initializes CodeQL analysis for supported languages.
- github/codeql-action/autobuild — Attempts to build a project for CodeQL analysis.
- github/codeql-action/analyze — Runs analysis and uploads CodeQL results.
- github/codeql-action/upload-sarif — Uploads SARIF-format security findings.
- actions/dependency-review-action — Reviews dependency changes in pull requests.
- ossf/scorecard-action — Runs OpenSSF Scorecard checks.
- step-security/harden-runner — Adds runner hardening and egress monitoring options.
- snyk/actions/node — Runs Snyk scans for Node.js projects.
- github/codeql-action/upload-database — Uploads a CodeQL database for analysis workflows.
- advanced-security/secret-scanning-custom-patterns — Helps manage custom secret-scanning patterns through workflows.
Pull requests, issues, and community operations
- peter-evans/create-pull-request — Opens pull requests from automated changes.
- peter-evans/find-comment — Locates prior issue or pull request comments.
- peter-evans/create-or-update-comment — Posts or updates a GitHub comment.
- peter-evans/enable-pull-request-automerge — Enables auto-merge where repository policy allows it.
- peter-evans/labeler — Applies labels based on changed files.
- actions/labeler — Labels pull requests from configurable file patterns.
- dorny/paths-filter — Detects changed paths and exposes filter results.
- tj-actions/changed-files — Lists changed files for later workflow steps.
- marocchino/sticky-pull-request-comment — Maintains one updated pull request comment.
- actions/stale — Marks inactive issues or pull requests as stale.
- actions/first-interaction — Responds to a contributor’s first issue or pull request.
- actions-ecosystem/action-add-labels — Adds labels to issues or pull requests.
- actions-ecosystem/action-remove-labels — Removes selected labels.
- mshick/add-pr-comment — Adds comments to pull requests.
- stefanzweifel/git-auto-commit-action — Commits generated file changes back to a repository.
Cloud and hosting deployments
- aws-actions/configure-aws-credentials — Configures AWS credentials for a job.
- aws-actions/amazon-ecr-login — Logs in to Amazon ECR.
- aws-actions/aws-cloudformation-github-deploy — Deploys AWS CloudFormation stacks.
- azure/login — Authenticates a workflow with Azure.
- azure/webapps-deploy — Deploys an application to Azure Web Apps.
- azure/functions-action — Deploys an Azure Functions app.
- google-github-actions/auth — Authenticates a workflow to Google Cloud.
- google-github-actions/setup-gcloud — Installs and configures the gcloud CLI.
- google-github-actions/deploy-cloudrun — Deploys a service to Cloud Run.
- FirebaseExtended/action-hosting-deploy — Deploys Firebase Hosting previews or live channels.
- peaceiris/actions-gh-pages — Publishes static files to a GitHub Pages branch.
- JamesIves/github-pages-deploy-action — Deploys a directory to GitHub Pages.
- actions/configure-pages — Configures a GitHub Pages deployment.
- actions/upload-pages-artifact — Packages static site content for Pages.
- actions/deploy-pages — Deploys a prepared GitHub Pages artifact.
Notifications, documentation, and specialized workflows
- slackapi/slack-github-action — Sends messages or payloads to Slack.
- 8398a7/action-slack — Sends workflow notifications to Slack.
- atlassian/gajira-create — Creates Jira issues from a workflow.
- atlassian/gajira-transition — Transitions Jira issues.
- github/issue-labeler — Applies labels to issues using configurable rules.
- EndBug/add-and-commit — Commits and pushes generated changes.
- ad-m/github-push-action — Pushes commits to a GitHub repository.
- crazy-max/ghaction-github-labeler — Synchronizes repository labels from configuration.
- github-changelog-generator/github-changelog-generator — Generates changelog content from repository history.
- wagoid/commitlint-github-action — Checks commit messages with commitlint.
- devops-infra/action-commit-push — Commits and pushes workflow changes.
- technote-space/release-notes-action — Generates release notes from GitHub activity.
- mikepenz/release-changelog-builder-action — Builds changelogs for releases.
- actions/create-github-app-token — Creates an installation token for a GitHub App.
- octokit/request-action — Makes authenticated requests to the GitHub API.
How to choose a smaller, safer set
Start with the workflow outcomes that remove real repetition: dependency installation, tests, preview environments, release packaging, and a small number of security checks. A tiny team usually benefits more from five understandable workflows than from a sprawling automation catalog.
Every action is part of your software supply chain. Treat third-party workflow code with the same care you give production dependencies.
Pin actions to immutable commit SHAs where your security policy requires it, keep workflow permissions narrow, and avoid exposing secrets to workflows triggered by untrusted pull requests. Test deployment automation in a non-production environment first. With those guardrails, GitHub Actions can provide a solid foundation for the routine work that otherwise competes with product development.