Skip to content
59

Awesome Actions

A curated list of awesome actions to use on GitHub

28k stars1,811 forks399 entriesLast push Sep 1, 2024 (2 years ago)License CC0-1.0

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Official Resources

Official Site

GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD.

In 6 listsDetails

Official Documentation

Official Actions organization

actions/virtual-environments

GitHub Actions virtual environments.

actions/runner

The Runner for GitHub Actions.

GitHub Blog Announcement

Official Resources >Workflow Examples

actions/starter-workflows

Starter workflow management.

In 2 lists

actions/example-services

Example workflows using service containers.

Official Resources >Official Actions

actions/checkout

Setup your repository on your workflow.

actions/upload-artifact

Upload artifacts from your workflow.

actions/download-artifact

Download artifacts from your build.

actions/cache

Cache dependencies and build outputs in GitHub Actions.

actions/github-script

Write a script for GitHub API and the workflow contexts.

In 2 lists

actions/create-release

An Action to create releases via the GitHub Release API.

actions/upload-release-asset

An Action to upload a release asset via the GitHub Release API.

actions/first-interaction

An action for filtering pull requests and issues from first-time contributors.

actions/stale

Marks issues and pull requests that have not had recent interaction.

actions/labeler

An action for automatically labelling pull requests.

actions/delete-package-versions

Delete versions of a package from GitHub Packages.

actions/setup-node: Node.js

actions/setup-python: Python

actions/setup-go: Go

actions/setup-dotnet: .NET core sdk

actions/setup-haskell: Haskell (GHC and Cabal)

actions/setup-java: Java

actions/setup-ruby: Ruby

actions/setup-elixir: Elixir

actions/setup-julia: Julia

Official Resources >Create your Actions

actions/toolkit

The GitHub ToolKit for developing GitHub Actions.

actions/hello-world-javascript-action

A template to demonstrate how to build a JavaScript action.

actions/javascript-action

Create a JavaScript Action.

actions/typescript-action

Create a TypeScript Action.

actions/http-client

A lightweight HTTP client optimized for use with actions, TypeScript with generics and async await.

actions/hello-world-docker-action

A template to demonstrate how to build a Docker action.

actions/container-toolkit-action

Template repo for creating container actions using actions/toolkit.

Community Resources >GitHub Tools and Management

Declaratively setup GitHub Labels

Action to sync GitHub labels in the declarative way

Add releases to GitHub

Publish a docker image to Dockerhub

Create an issue using content from a file

Publish GitHub Releases with Assets

GitHub Project Automation+

Automate GitHub Project cards with any webhook event.

Run GitHub Actions Locally with a web interface

Run GitHub Actions Locally in Terminal

is a a tool to run your GitHub Actions locally.

In 5 listsDetails

Build and Publish Android debug APK

Generate sequential build numbers for GitHub Actions

Push Git changes to GitHub repository without authentication difficulties

Generate release notes based on your events

Create a GitHub wiki page based on the provided markdown file

Label your Pull Requests auto-magically (using committed files)

Add Label to your Pull Requests based on the author team name

Get a list of file changes with PR/Push

Use private actions in any workflow

Label Your Issues Using the Issue's Contents

Rollback a GitHub Release

Lock Closed Issues and Pull Requests after a Period of Inactivity

Get Commit Difference Count Between Two Branches

Generate Release Notes Based on Git References

Enforce Policies on GitHub Repositories and Commits

Auto Label Issue Based on Issue Description

Update Configured GitHub Actions to the Latest Versions

Create Issue Branch

Remove Old Artifacts

Expose Git Commit Data As Environment Variables

Sync Defined Files/Binaries to Wiki or External Repositories

Create/Update/Delete a GitHub Wiki Page Based on Any File

Prow GitHub Actions

Automation of policy enforcement, chat-ops, and automatic PR merging.

Check GitHub Status in your Workflow

Manage Labels on GitHub (create/rename/update/delete) as Code

Continuous Distribution of Funding to your Project Contributors and Dependencies

Herald Rules for GitHub: Add Subscribers, Assignees, Labels, and More to Your PR

GitHub Codeowners Validator

Ensures the correctness of your GitHub CODEOWNERS file. It supports public and private GitHub repositories and also GitHub Enterprise installations.

Copybara Action

Move and transform code between repositories (ideal to maintain several repos from one monorepo).

Community Resources >Collection of Actions

Use HashiCorp's Terraform

Sets up Terraform CLI in your GitHub Actions workflow.

In 2 lists

GitHub Actions for Yarn 1

GitHub Actions for Yarn 2

GitHub Actions for Golang

GitHub Actions for R and accompanying #rstats package

GitHub Actions for WordPress

GitHub Actions for Composer

GitHub Actions for Flutter

GitHub Actions for PHP

GitHub Actions for Rust

GitHub Actions for Android

GitHub Actions for Logtalk and Prolog

GitHub Actions for Deno

GitHub Actions for Unity

Octions - GitHub Actions for GitHub REST API

GitHub Actions for Docker

GitHub Actions for AWS

Actions Hub

Community Resources >Utility

Setup ssh-agent

Run ssh-agent with additional SSH keys to access private repositories.

GitHub Actions Badges for your README

GitHub Actions for Python project with poetry

GitHub Actions for Python project with pyenv

GitHub Actions to compile LaTeX documents

GitHub Action to compile LaTeX documents

In 2 lists

Update Maxmind Databases

Debug with SSH over tmate

Debug the Action directly by providing a SSH connection.

In 2 lists

Unlock git-crypt files

Golang CGO cross compiler

Run your job on another architecture: arm32, aarch64 and others

Generate a table of contents

Automatically add Label or Assignee to an Issue

Action to send LGTM reaction as image or GIF when we say lgtm

Generate build numbers across multiple scopes

Publish GitHub release artifacts

Jekyll Diff Action

Diffs the built Jekyll site after a change, and comments the result back to GitHub.

Branch Protection Bot

Temporarily disable and re-enable "Include administrators" option in branch protection.

Wait for commit statuses

Wait until all statuses and checks are successful or any of them has failed and set its status output accordingly.

Get Latest Tag

Get the previous tag from git.

Create Milestone

Create a new open milestone given the title and description.

Close Milestone

Close the given milestone.

Action to enforce branch naming rules

Expose slug of some GitHub variables

GitHub Action adding comments to pull requests with package health information about newly added npm dependencies.

In 15 listsDetails

awesome-lint as a GitHub Action

Edit JSON File

Build Slate documentation

Read Properties

Read values from .properties files.

Write Properties

Write values to .properties files.

Autotag

Automatically generate a new tag when the manifest file (i.e. package.json) version changes.

Apply templates with Jinja2

Use the Jinja2 template engine to generate files from templates.

Has Changes

Check if there are code changes from previous steps.

Mind Your Language Action

Detect offensive comments in issues and pull requests, and warn senders.

YAML/JSON/XML Converter

Converts YAML/JSON/XML file formats interchangeably.

NSFW Detection

Detect NSFW content in committed files.

Has Changed Path

Conditionally run actions based on changed paths.

Linguist

Checks a repository and produces information about used languages in output.

Twilio Voice Call

Make Twilio voice call with defined text.

Setup Xcode

Switch between pre-installed versions of Xcode for macOS images.

Setup Xamarin

Switch between pre-installed versions of Xamarin and Mono for macOS images.

Memer Action

A GitHub Action for Programmer Memes xD.

Setup Cocoapods

Setup specific version of Cocoapods.

Public IP

Queries GitHub actions runner's public IP address.

GitHub Actions for Lazarus/FPC

Twilio Fax

Sends a document by fax using your Twilio account.

Setup Kubernetes tools

Install Kubernetes tools (kubectl, kustomize, helm, kubeval, conftest, and yq) on the runner.

Setup Elastic Cloud Control Tool

Install a specific version of ecctl on the runner.

PowerShell Script

Run PowerShell scripts with workflow contexts (e.g. $github.token) and cmdlets, return value => action output.

Upload and Scan Files with VirusTotal

Import a GPG Key

Compress with UPX

The Ultimate Packer for eXecutables.

Pull the New Go Module Version Into the Proxy Cache

Ensures the latest version of your Go module is in the proxy cache. Also updates the pkg.go.dev documentation upon release.

GitHub Environment Variables Action

Expose environment variables such as the branch/tag name, repository slug, and ref slug.

GitHub Action Locks

Guarantee atomic execution of your GitHub Action workflows.

Paths Filter

Conditionally run actions based on files modified by PR, feature branch or pushed commits.

Minisauras

Pulls all the JavaScript and CSS files from your base branch, minify them and creates a pull-request with a new branch.

Website to GIF

Turn any webpage into a GIF to display on your README, docs, etc.

Interactive Inputs - Runtime workflow inputs

Add dynamic inputs at runtime for your GitHub Actions workflows

Create an envfile

Export global environment variables for succeeding build steps

Programmatically set environment variables for use in subsequent steps

Install Conda environments for Python

Setup NativeScript

Create a JSON Environment File

Install NPM Dependencies with Caching

Highlight New NPM Dependencies

Comments on pull requests newly added NPM dependencies information.

Cache NPM Dependencies

Cache Yarn Dependencies

Next SemVers

Output the next version for major, minor, and patch version based on the given semver version.

Get latest SemVer and branch name given a search string

Cut Release Branch

Cuts a release branch given a branch prefix and optional semantic version.

Increment Semantic Version

Bump a given semantic version (SemVer), depending on given release type.

Community Resources >Static Analysis

PHPStan Static code analyzer Action

GraphQL Inspector Action

PowerShell static analysis with PSScriptAnalyzer

Run tfsec, with reviewdog output on the PR

Run Tests through Puppeteer, the Headless Chrome Node API

xUnit Slack Reporter: Sends summary of tests from xUnit reports to a Slack channel

Run codeception tests

Run TestCafe tests

Run Unity tests

Run Cypress E2E tests

Test Ansible roles with Molecule

Run performance testing with artillery.io

Detect Flaky Tests with BuildPulse

Display Inline Code Annotations for Jest Tests

Run Julia tests

PHP Coding Standards Fixer Action

Runs Hadolint against a Dockerfile within a repository

Run ESLint, with reviewdog output on the PR

JavaScript-based linter for *.workflow files

Lint terraform files using tflint, with reviewdog output on the PR

autopep8: Automatically formats Python code to conform to the PEP 8 style guide

Run ergebnis/composer-normalize to ensure your PHP project has a normalized composer.json

Run stolt/lean-package-validator to ensure your package has only the required runtime artifacts

Run Go lint checks on PR event

Node.js - Automatically run the format and/or lint script used by the package

Stylelinter - GitHub Action that runs stylelint

Run stylelint, with reviewdog output on the PR

PyCodeStyle Action - A GitHub Action that leaves a comment on your PR with pycodestyle (autopep8) feedback

wemake-python-styleguide - The strictest and most opinionated python linter ever, with optional reviewdog output on…

(label: level:starter) The strictest and most opinionated python linter ever!

In 5 listsDetails

Run TSLint with status checks and file diff annotations

Lint Pull Request commits with commitlint

Run vint, with reviewdog output on the PR

Run mispell, with reviewdog output on the PR

Run golangci-lint, with reviewdog output on the PR

Run shellcheck, with reviewdog output on the PR

Catch insensitive, inconsiderate writing in your markdown docs

Run dotenv-linter - Lints your .env files like a charm, with optional reviewdog output on the PR

Run dotenv-linter, with reviewdog output on the PR

Show and auto-fix linting errors for many programming languages

PHP_CodeSniffer With Annotations

Linter for markdown (with presets)

Stylelint problem matcher to create annotations

Run sqlcheck on the PR to identifies anti-patterns in SQL queries

Validate Fastlane Supply Metadata Against the Play Store Guidelines

Run Golint to lint your Golang code

A vulnerability scanner for your docker images

Automatically approve and merge Dependabot updates

Run dlint security linter on your Python code

AWS Secrets Manager Actions

Define AWS Secrets Manager secrets to environment values.

Linting your AWS IAM policy documents for correctness and security issues

Secret Spreader

Not an action per se, but a tool to manage Actions Secrets across a list of repositories.

Secrets Sync Action

Action syncs secrets across multiple repositories.

Snyk Test Action

Manage Your GitHub Actions Secrets With A Simple CLI

SecretHub

Have a single source of truth for your secrets and load them into GitHub Actions on demand.

Scan code with SonarCloud

Send your code coverage to codecov.io

Publishing code coverage to CodeClimate

Update repository go report card

Community Resources >Dynamic Analysis

Run Gofmt to check Golang code formatting

Run Goimports to check Golang imports order

Community Resources >Monitoring

Audit a webpage with Google Chrome's Lighthouse tests

Runs Lighthouse and posts results to PRs and Slack

Run Lighthouse in CI using GitHub Actions

Continuous Benchmarking and Benchmark Visualization for Go

Size Limit Action

Comments cost comparison of your JS in PRs and rejects them if limit is exceeded.

Check bundlephobia

Comments new and modified package size according to bundlephobia.io website and rejects PR on threshold surpassed.

Community Resources >Pull Requests

Set PR Reviewers Based on Assignees

Open or Update PR on Branch Push (with Branch Selection)

Automatically Rebase a PR

Label PR once it has a Specified Number of Approvals

Add Labels to a PR based on Matched File Patterns

Auto-Approve PRs

Automatically add Reviewers to PR based on the Configuration File

Add Labels to a PR based on Branch Name Patterns

Add Labels to a PR based on Total Size of the Diff

Automatically merge PRs That Are Ready

Verify That PRs Contain a Ticket Reference

Create a PR for Changes to your Repository in the Actions Workspace

Lint a PR

ChatOps for PRs

Prefix Title and Body of a PR Based on Text Extracted from Branch Name

Block Autosquash Commits

Automatically Bump and Tag on Merge

Automatically Update PRs with Outdated Checks and Squash and Merge the Ones Matching All Branch Protections

Merge Pal - Automatically Update and Merge PRs

Enforce naming convention on pull request title

Pull Request Stuck Notifier

Lint pull request name with commitlint (Awesome if you squash merge !)

Block PR merges when Checks for target branches are failing

Get generated static site screenshots updated by Pull Request

Add Labels Depending if the Pull Request Still in Progress

Ticket Check Action

Automatically add a ticket or issue number to the start of all Pull Request titles.

Pull Request Lint With Regex

Pull Request Landmines

Annotate a GitHub Pull Request Based on a Checkstyle XML-Report

In 2 lists

Pull Request Stats

Print relevant stats about reviewers.

Pull Request Description Enforcer

Enforces description on pull requests.

Community Resources >GitHub Pages

Deploy a Zola site to GitHub Pages

Build Hugo static content site and publish it to gh-pages branch

Build a Jekyll site—with Custom Jekyll Plugins & Build Scripts—and deploy it back to the Gh-Pages Branch

Google Dataset Search Metadata

And other schema.org extractors to make datasets discoverable from GitHub pages.

GitHub Actions for deploying to GitHub Pages with Static Site Generators

GitHub Action for Hexo

Deploy Google Analytics stats to GitHub Pages

A Jupyter Notebook Blogging Platform Powered by GitHub Actions, Pages and Jekyll

In 2 lists

Deploy A Static Site to GitHub Pages

Deploy to custom directory and ignore folder/file.

Deploy to GitHub Pages with Advanced Settings

Community Resources >Notifications and Messages

Send a Discord notification

Post a Slack message as a bot

Send an SMS from GitHub Actions using Nexmo

Send an SMS from GitHub Actions using Clockworksms

Send a Telegram Message

Send a File or Text Message to Discord (custom define color, username or avatar)

Collaborate on tweets using pull requests

Send a Push Notification via Push by Techulus

Send email with SendGrid

Send a Push Notification via Join

New package version checker for npm

New package version checker for NuGet

New package version checker for Gradle

Send a Push Notification via Pushbullet

Create an Outlook Calendar Event using Microsoft Graph

Watch for GitHub Wiki page changes and post to Slack

Send an SMS using MessageBird

Reply to Stale Bots

Send an Embed Message to Discord

Keep Your PRs in Sync With Teamwork Tasks

Send Microsoft Teams Notification

Community Resources >Deployment

Deploy to Netlify

Deploy a Probot App using Actions

Deploy a playlist to Spotify

Deploy VS Code extensions with vsce

Purge Cloudflare cache after updating a website

Deploy your DNS configuration using DNS Control

Deploy a Theme to Shopify

Trigger multiple GitLab CI Pipeline

Trigger multiple Jenkins Jobs

GitHub Action for Homebrew Tap

Copy files and artifacts via SSH

Executing remote ssh commands

Publish a Python distribution package to PyPI

Deploy Static Website to Azure Storage

Cross platform Chocolatey CLI to build and publish packages

Deploy iOS Pod Library to Cocoapods

GitHub Action for TencentCloud Serverless

Publish npm (pre)releases

Deploy a static site to Surge.sh

GitHub Action for GoReleaser, a release automation tool for Go projects

FTP Deploy Action, Deploys a GitHub project to a FTP server using GitHub actions

Publish Article to Dev.to

Action For Semantic Release

Deploy a Collection to Ansible Galaxy

Publish module to Puppet Forge

Build and publish Electron apps

Publish a Maven package

Build and deploy a theme to Ghost CMS

Deploy an Ansible role to Ansible Galaxy

Publish one or more JS modules to a registry

Publish a package with 2FA using Slack

Serialize Workflow Runs in Continuous Deployment Pipelines

Netlify Deploy GitHub Action for each commit

Run Ansible Playbooks

Publish a Python Distribution Package to Anaconda Cloud

Deploy VS Code Extension to Visual Studio Marketplace or the Open VSX Registry

Deploy a YouTube Video to Anchor.fm Podcast

Deploy with AWS CodeDeploy

Update a Docker Hub repository description from README.md

Publish Docker Images to the GitHub Package Registry (GPR)

Update a repository's "Full description" on Docker Hub

Build and publish docker images to any registry using Kaniko

Monitor and limit your docker image size

A tool to keep an eye on your docker images size.

In 2 lists

Publish Docker Images to the Amazon Elastic Container Registry (ECR)

Build And Push Your Docker Images Caching Each Stage To Reduce Build Time

Set up Docker Buildx

Convert Branch or Tag Name Into Docker-Compatible Image Tag

Expose slug of some GitHub variables

GitHub Action adding comments to pull requests with package health information about newly added npm dependencies.

In 15 listsDetails

Deploy to any Cloud or Kubernetes Using Pulumi

Deploy to Kubernetes with kubectl

Get Kubeconfig File From Google Kubernetes Engine (GKE)

Kustomize Kubernetes Config YAMLs

Create a Kubernetes Cluster for Testing Using Krucible

Sync/upload a directory to an AWS S3 bucket

Deploy Lambda code to an existing function

Generate terraform documentation

Uses terraform-docs to generate docs for terraform modules.

An example of using Terraform to validate and apply GitHub administration

Community Resources >External Services

Use a Jenkinsfile

GitHub Action for Firebase

GitHub Action for Contentful Migration CLI

GitHub Actions for Pixela (a-know/pi)

GitHub Action for Google Cloud Platform (GCP)

Upload files to any OpenStack Swift service provider

GitHub Action for sending Stack Overflow posts to Slack

Assume AWS role

Generate Custom Response using JSONbin

Community Resources >Frontend Tools

Execute Gradle task

JS Build Actions

Run Grunt or Gulp build tasks and commit file changes.

GitHub Action for Gatsby CLI

Runs a WebPageTest audit and prints the results as commit comment

GitHub Actions for Hugo extended

In 2 lists

Generate OG Image

Generate customisable open graph images from Markdown files.

GitHub Actions for mdBook

Setup Mint

Setup Mint (programming language for writing single page applications).

Gatsby AWS S3 Deployment

Deploy Gatsby to S3 (supports CloudFront).

Community Resources >Machine Learning Ops

Submitting Argo Workflows (Cloud Agnostic)

Submitting Argo Workflows to GKE

Query Experiment Tracking Results From Weights & Biases

Run Parameterized Jupyter Notebooks

Compile, Deploy and Run Kubeflow Pipeline

Automatically Dockerize A Data-Science Repo As A Jupyter Server

Azure Machine Learning With GitHub Actions

Community Resources >Build

run-cmake

Multi platform action to build C/C++ software with CMake and Ninja.

run-vcpkg

Multi platform action to build and install C/C++ dependencies with vcpkg.

Build Go applications for multiplatform

Generate ~/.m2/settings.xml for Maven builds

Run Pascal Script

Setup Brainfuck

Setup brainfuck interpreter.

Publish Go Binaries to GitHub Release Assets

Setup COBOL

Check Gradle version

Keep your Gradle version up to date.

Community Resources >Database

Setup Cassandra Schema

Running scripts from the provided folder on top of Cassandra cluster.

Community Resources >Networking

Setup ZeroTier

Connect your runner to a ZeroTier network.

Community Resources >Localization

Find and automatically fix typos and grammar issues in your code

Translation

Translate text from any language to any language.

Community Resources >Fun

Add equivalent of a like button in your README

Visualize community approval on some part of your readme (can be used as a poll).

Community Resources >Cheat Sheet

GitHub Actions Branding Cheat Sheet

Tutorials

Continuous deployment of Next.js app with Up

Converting Docker-based Actions to JavaScript/TypeScript

GitHub Actions CI for Swift/iOS Projects

Working with GitHub Actions

GitHub Actions for Rails Developers

GitHub Actions Advent Calendar

Zero Downtime Laravel Deployments with GitHub Actions

Building Custom GitHub Actions Pluralsight Course

Continuously Deploying Django to DigitalOcean with Docker and GitHub Actions

Deploying Self-Hosted GitHub Actions Runners with Docker

Deploy self-hosted GitHub Actions runners with Docker and Docker Swarm to DigitalOcean.

Setup Auto-scaled self-hosted GitHub Actions Runners on AWS Spot-instances

Getting the Gist of GitHub Actions

See category
92

Awesome Sysadmin

awesome-foss/awesome-sysadmin

A curated list of amazingly awesome open-source sysadmin resources.

Fresh★ 35k329 entriesPushed 12 days ago
92

awesome-zsh-plugins

unixorn/awesome-zsh-plugins

A collection of ZSH frameworks, plugins, themes and tutorials.

Fresh★ 18k2533 entriesPushed 2 days ago
90

Awesome Cli Apps

agarrharr/awesome-cli-apps

🖥 📊 🕹 🛠 A curated list of command line apps

Fresh★ 20k546 entriesPushed today
89

Awesome Terraform

shuaibiyy/awesome-tf

Curated list of resources on HashiCorp's Terraform and OpenTofu

Fresh★ 6.6k472 entriesPushed 2 days ago
87

Awesome DevOps

wmariuss/awesome-devops

A curated list of awesome DevOps platforms, tools, practices and resources

Fresh★ 4.4k317 entriesPushed 9 days ago
87

Awesome Cloud Native

rootsongjc/awesome-cloud-native

A curated list for awesome cloud native tools, software and tutorials.

Fresh★ 2.5k799 entriesPushed today