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 as autoscaled containers in response. With GitHub Actions you can automate your workflow from idea to production.
Contents
Official Resources
- Official Site
- Official Community Forum Board
- Beta Documentation (for deprecated HCL format actions)
- Official Documentation (for YML format actions)
- Migrate Tool - Converts GitHub Actions main.workflow files into the new .yml syntax.
- Official Actions Collection
- GitHub Blog Announcement
Status badge
Adding a workflow status badge to your repository - GitHub Help
URL to a status badge SVG.
https://github.com/{github_id}/{repository}/workflows/{workflow_name}/badge.svg
An example: https://github.com/sdras/awesome-actions/workflows/Lint%20Awesome%20List/badge.svg
Community Resources
GitHub Tools and Management
- Declaratively setup GitHub Labels
- Run GitHub Actions Locally
- Alternative (Python-based) for Running GitHub Actions Locally
- Manage GitHub Action workflows and actions by cli - Allows you to script edition.
- GitHub Action Builder and Previewer
- Move assigned issues to column in GitHub projects
- Move assigned pull requests to column in GitHub projects
- Add new issues to GitHub projects
- Add new pull requests to GitHub projects
- Add releases to GitHub
- Publish a docker image to Dockerhub
- Create an issue using content from a file
- Publish GitHub Releases with Assets
Collection of Actions
- Many linters and autofixers for various languages
- Node.js Actions Toolkit
- Use HashiCorp's Terraform
- GitHub Actions for Yarn
- GitHub Actions for Golang
- Android Build and Emulator Actions
- GitHub Actions for R and accompanying #rstats package
- GitHub Actions for WordPress
- GitHub Actions for Composer
- GitHub Actions for Flutter
- GitHub Actions for PHP
Utility
- Sleep
- Wait for 200
- Run Cake tasks
- Run psake tasks
- SSH
- General purpose HTTP client for Actions, wrapping HTTPie
- Build Go apps using GoCenter
- Run pandoc - The swiss army knife for document conversions.
- Debug Action - Print environment variables and event to the Actions logs.
- Gate actions by filtering if files matching a pattern have been touched
- Scan for secrets in your source code
- Review the licenses of your node dependencies
- A GitHub Action to check your project's dependencies
- Check if package.json dependencies have changed
- Update a repository's "Full description" on Docker Hub
- GitHub Actions Badges for your README
- GitHub Actions for Python project with poetry
- GitHub Actions to compile LaTeX documents
- Create an envfile
- Update Maxmind Databases
- Debug with SSH over tmate - Debug the Action directly by providing a SSH connection.
Testing and Linting
- Runs Hadolint against a Dockerfile within a repository
- Test your Actions Locally
- Lint a Dockerfile (using replicatedhq/dockerfilelint)
- NPM Audit
- PHP Code fixer Action
- PHP Psalm Static code analyzer Action
- PHPStan Static code analyzer Action
- PHPQA toolsuite Action
- GraphQL Inspector Action
- Snyk CLI Test Action
- PowerShell static analysis with PSScriptAnalyzer
- Run web performance audits using Sitespeed.io
- Run Tests through Puppeteer, the Headless Chrome Node API
- Run ESLint with status checks and file diff annotations
- JavaScript-based linter for *.workflow files
- Send your latest code coverage score to Coveralls.io
- Lint a Dockerfile using Hadolint
- Lint terraform files using tflint
- Validate Puppet modules using Puppet PDK
- Scan git commits for secrets with gitleaks
- Send your code coverage to codecov.io
- autopep8: Automatically formats Python code to conform to the PEP 8 style guide
- xUnit Slack Reporter: Sends summary of tests from xUnit reports to a Slack channel
- Publishing code coverage to CodeClimate
- Run codeception tests
- Audit a webpage with Google Chrome's Lighthouse tests
- Run
localheinz/composer-normalize
to ensure your PHP project has a normalizedcomposer.json
- Run Go lint checks on PR event
- Node.js - Automatically run the
format
and/orlint
script used by the package - Continuous Benchmarking and Benchmark Visualization for Go
Pull Requests
- Set pull request reviewers based on assignees
- Open or update pull request on branch push (with branch selection)
- Post gif on check fail
- Cleanup branches after merge
- Automatically rebase a PR
- Evaluate Clojure in the issue comment
- Create Pull Request when branch is pushed
- Label pull request once it has a specified number of approvals
- Add labels to Pull Request based on matched file patterns
- Auto approve pull requests
- Automatically add reviewers to pull request based on the configuration file
- Auto-commit back any changes made by previous actions
- Add labels to Pull Request based on branch name patterns
- Add labels to Pull Request based on total size of the diff
- Automatically merge Pull Requests that are ready
- Verify pull requests contain a ticket reference
- Create a pull request for changes to your repository in the actions workspace
- Pull Request Lint
GitHub Pages
- Deploy a Zola site to GitHub Pages
- Visualize your Dockerfile with a Container Tree
- 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.
- Deploy assets to GitHub pages - No building, just deploying.
- GitHub Actions for deploying to GitHub Pages with Static Site Generators
Notifications and Messages
- Confucious Wisdom (Pull Request Failure Message)
- Send a Discord notification
- Send a Slack message
- Post a Slack message as a bot
- Update Twitter status
- Generate Tweet content to share pull request file(s) after merge
- Send an SMS from GitHub Actions using Nexmo
- Trigger emails with release notes with SendGrid
- Send email on failed GitHub Checks
- Report webpack stats to packtracker.io
- 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 Pushover.net
- Send a dynamic notification to any service using Apprise
- Send a Push Notification via Push by Techulus
- Send email with SendGrid
- Send a Push Notification via Join
Deployment
- Deploy to Netlify
- Deploy a Probot App using Actions
- Deploy a playlist to Spotify
- Deploy a serverless app to AWS Lambda with Up
- Deploy serverless infrastructure with AWS SAM
- Deploy a Node.js function to AWS Lambda and invoke it using the Serverless framework
- Deploy VS Code extensions with vsce
- Deploy a Node.js App to Azure
- Deploy via rsync over ssh
- Deploy to any Cloud or Kubernetes Using Pulumi
- Deploy a Cloudflare worker
- Deploy your DNS configuration using DNS Control
- Using surge.sh, deploy your branch specific storybook as a pull request deployment
- Create Release Archive
- Publish WordPress Plugin
- Deploy a Theme to Shopify
- Trigger multiple GitLab CI Pipeline
- Trigger multiple Jenkins Jobs
- GitHub Deployment API
- GitHub Action for zem
- GitHub Action for Homebrew
- Deploy Lambda code to an existing function
- Copy files and artifacts via SSH
- Executing remote ssh commands
- Deploy to Kubernetes with kubectl
- Update a Docker Hub repository description from README.md
- Purge Cloudflare cache after updating a website
- Sync/upload a directory to an AWS S3 bucket
External Services
- Use a Jenkinsfile
- Configure a DNS Record on Cloudflare
- Firebase
- GitHub Action for Firebase
- GitHub Action for JFrog CLI
- GitHub Action for Contentful Migration CLI
- GitHub Actions for Pixela (a-know/pi)
Frontend Tools
- Execute Gradle task
- JS Build Actions - Run Grunt or Gulp build tasks and commit file changes.
- Ember CLI Actions
- GitHub Action for Gatsby CLI
- Runs a WebPageTest audit and prints the results as commit comment
- GitHub Actions for Hugo extended
Internet of Things (IOT)
Tutorials
- Introducing GitHub Actions
- Deploying to Firebase Hosting with GitHub Actions
- Building GitHub Actions in Node.js
- GitHub Actions on Android project
- A guide to GitHub Actions using Node.js
- GitHub Actions for PHP Developers
- Continuous deployment of Next.js app with Up
- Converting Docker-based Actions to JavaScript/TypeScript
Please don't hesitate to make a PR if you have more resources to share. Check out contributing.md for more information