Awesome Actions
A curated list of awesome things related to GitHub Actions.
Actions are triggered by GitHub platform events directly in a repo and run on-demand workflows either on Linux, Windows or macOS virtual machines or inside a container in response. With GitHub Actions you can automate your workflow from idea to production.
Contents
Official Resources
Workflow Examples
Official Actions
Tool actions for your workflow.
Actions for GitHub Automation
Automate management for issues, pull requests, and releases.
Setup Actions
Set up your GitHub Actions workflow with a specific version of your programming languages.
Create your Actions
JavaScript and TypeScript Actions
Docker Container Actions
Collection of Actions
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
- Update Maxmind Databases
-
Debug with SSH over tmate - Debug the Action directly by providing a SSH connection.
- 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
- 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.
-
Delete Run Artifacts - Deletes all artifacts at the end of a workflow run.
-
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.
Environments
Dependencies
Semantic Versioning
Static Analysis
Testing
Linting
- 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 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 the PR
- 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
Security
Code Coverage
Dynamic Analysis
Monitoring
Pull Requests
GitHub Pages
Notifications and Messages
Deployment
Docker
Kubernetes
AWS
External Services
Machine Learning Ops
Build
Database
Localization
Fun
Cheat Sheet
Tutorials
Please don’t hesitate to make a PR if you have more resources to share. Check out contributing.md for more information.