mirror of
https://github.com/sdras/awesome-actions.git
synced 2024-12-30 09:36:10 -05:00
A curated list of awesome actions to use on GitHub
8dbd28ad63
A bot tool to temporarily disable and re-enable "Include administrators" option in branch protection Github doesn't have a way to give a Bot access to override the branch protection, specifically if you include administrators. The only possible solution is to disable the include administrators option. This increases risk of accidental pushes to master from administrators (I've done it a few times). This tool doesn't completely solve the problem of accidents happening but reduces the chances by closing the window. |
||
---|---|---|
.github | ||
awesome-actions.jpg | ||
code-of-conduct.md | ||
contributing.md | ||
ideas.md | ||
LICENSE | ||
README.md |
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
- Official Site
- Official Community Forum Board
- Official Documentation
- Official Actions organization
- actions/virtual-environments - GitHub Actions virtual environments.
- GitHub Blog Announcement
Workflow Examples
- actions/starter-workflows - Starter workflow management.
- actions/example-services - Example workflows using service containers.
Official Actions
Workflow Tool Actions
Tool actions for your workflow.
- 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.
actions/github
- Wraps actions-toolkit into an Action for common GitHub automations.
Actions for GitHub Automation
Automate management for issues, pull requests, and releases.
- 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.
Setup Actions
Set up your GitHub Actions workflow with a specific version of your programming languages.
- 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
Create your Actions
JavaScript and TypeScript 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.
Docker Container Actions
- 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.
Status Badge
URL to a status badge SVG.
# Workflow name
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg
# File path
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_FILE_PATH>/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
- Action to sync GitHub labels in the declarative way
- 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
- 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. Supports new YAML syntax
- Build and Publish Android debug APK
- Generate sequential build numbers for GitHub Actions
- Push Git changes to GitHub repository without authentication difficulties
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
- GitHub Actions for Rust
- GitHub Actions for Yarn - new syntax
- GitHub Actions for Android
- GitHub Actions for Logtalk and Prolog
Utility
- Sleep
- Wait for 200
- Run Cake tasks
- Run psake tasks
- SSH - Run SSH commands on a server.
- Setup
ssh-agent
- Runssh-agent
with additional SSH keys to access private repositories. - General purpose HTTP client for Actions, wrapping HTTPie
- 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.
- Unlock git-crypt files
- Golang CGO cross compiler
- Export global environment variables for succeeding build steps
- Programmatically set environment variables for use in subsequent steps
- 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
- Restrict cursing action - Moderator bot for your project, automatically removes bad language.
- 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
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
- Run ESLint, with reviewdog output on the PR
- 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
- Lint terraform files using tflint, with reviewdog output on the PR
- Validate Puppet modules using Puppet PDK
- Scan git commits for secrets with gitleaks
- Scan code with SonarCloud
- 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
- 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
- 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
- Build Go applications for multiplatform
- Catch insensitive, inconsiderate writing in your markdown docs
Security
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
- ChatOps For Pull Requests
- 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
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
- GitHub Action for Hexo
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
- New package version checker for npm
- New package version checker for NuGet
- New package version checker for Gradle
- Send a Push Notification via Pushbullet
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
- GitHub Action for Homebrew Tap
- 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
- 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
- Publish Docker Images to the GitHub Package Registry (GPR)
- Get Kubeconfig File From Google Kubernetes Engine (GKE)
- 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
- An example of using Terraform to validate and apply GitHub administration
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)
- GitHub Action for Google Cloud Platform (GCP)
- Upload files to any OpenStack Swift service provider
- GitHub Action for sending Stack Overflow posts to Slack
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
- Generate OG Image - Generate customisable open graph images from Markdown files.
- Runs Lighthouse and posts results to PRs and Slack
Internet of Things (IOT)
Machine Learning Ops
- Submitting Argo Workflows (Cloud Agnostic)
- Submitting Argo Workflows to GKE
- Query Experiment Tracking Results From Weights & Biases
- Run Parameterized Jupyter Notebooks
Performance Monitoring
Cheat Sheet
Tutorials
- Introducing GitHub Actions
- Deploying to Firebase Hosting with GitHub Actions
- Building GitHub Actions in Node.js
- GitHub Actions on Android project
- GitHub Actions for PHP Developers
- 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
Please don't hesitate to make a PR if you have more resources to share. Check out contributing.md for more information