返回 数据库
Awesome Actions
Awesome actions
Awesome Actions
¶
> 与 GitHub Actions 相关的精选列表.
操作由存储库中的 GitHub 平台事件直接触发,并在 Linux、Windows 或 macOS 虚拟机上或在容器内运行按需工作流作为响应. 借助 GitHub Actions,您可以自动化从创意到生产的工作流程.
Official Resources¶
- Official Site
- Official Documentation
- Official Actions organization
- actions/virtual-environments - GitHub Actions 虚拟环境.
- actions/runner - GitHub 操作的运行器.
- GitHub Blog Announcement
Workflow Examples¶
- actions/starter-workflows - 启动器工作流程管理.
- actions/example-services - 使用服务容器的示例工作流.
Official Actions¶
Workflow Tool Actions¶
工作流程的工具操作.
- actions/checkout - 在您的工作流程中设置您的存储库.
- actions/upload-artifact - 从您的工作流程上传工件.
- actions/download-artifact - 从您的构建中下载工件.
- actions/cache - 在 GitHub Actions 中缓存依赖项和构建输出.
- actions/github-script - 为 GitHub API 和工作流上下文编写脚本.
Actions for GitHub Automation¶
自动管理问题、拉取请求和发布.
- actions/create-release - 通过 GitHub Release API 创建发布的操作.
- actions/upload-release-asset - 通过 GitHub Release API 上传发布资产的操作.
- actions/first-interaction - 用于过滤来自首次贡献者的拉取请求和问题的操作.
- actions/stale - 标记最近没有交互的问题和拉取请求.
- actions/labeler - 自动标记拉取请求的操作.
- actions/delete-package-versions - 从 GitHub Packages 中删除包的版本.
Setup Actions¶
使用特定版本的编程语言设置 GitHub Actions 工作流程.
- 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 - 用于开发 GitHub Actions 的 GitHub 工具包.
- actions/hello-world-javascript-action - 演示如何构建 JavaScript 操作的模板.
- actions/javascript-action - 创建一个 JavaScript 动作.
- actions/typescript-action - 创建一个 TypeScript 动作.
- actions/http-client - 一个轻量级的 HTTP 客户端,优化用于操作、带有泛型的 TypeScript 和异步等待.
Docker Container Actions¶
- actions/hello-world-docker-action - 演示如何构建 Docker 操作的模板.
- actions/container-toolkit-action - 使用动作/工具包创建容器动作的模板回购.
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+ - 使用任何 webhook 事件自动化 GitHub 项目卡片.
- Run GitHub Actions Locally with a web interface
- Run GitHub Actions Locally in Terminal
- 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 - 策略执行、聊天操作和自动 PR 合并的自动化.
- 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 - 确保 GitHub CODEOWNERS 文件的正确性. 它支持公共和私人 GitHub 存储库以及 GitHub Enterprise 安装.
- Copybara Action - 在存储库之间移动和转换代码(非常适合从一个单一存储库维护多个存储库).
Collection of Actions¶
- Use HashiCorp's Terraform
- 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
Utility¶
- Setup
ssh-agent- 使用额外的 SSH 密钥运行ssh-agent以访问私有存储库. - 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 - 通过提供 SSH 连接直接调试操作.
- 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 - 在更改后对构建的 Jekyll 站点进行比较,并将结果评论回 GitHub.
- Branch Protection Bot - Temporarily disable and re-enable "Include administrators" option in branch protection.
- Wait for commit statuses - 等到所有状态和检查都成功或其中任何一个失败并相应地设置其状态输出.
- Get Latest Tag - 从 git 获取上一个标签.
- Create Milestone - 根据标题和描述创建一个新的开放里程碑.
- Close 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 - 从“.properties”文件中读取值.
- Write Properties - 将值写入“.properties”文件.
- Autotag - 当清单文件(即
package.json)版本更改时自动生成新标签. - Apply templates with Jinja2 - 使用 Jinja2 模板引擎从模板生成文件.
- Has Changes - 检查前面的步骤是否有代码更改.
- Mind Your Language Action - 检测问题和拉取请求中的冒犯性评论,并警告发件人.
- YAML/JSON/XML Converter - 可互换地转换 YAML/JSON/XML 文件格式.
- NSFW Detection - 检测已提交文件中的 NSFW 内容.
- Has Changed Path - 根据更改的路径有条件地运行操作.
- Linguist - 检查存储库并在输出中生成有关使用的语言的信息.
- Twilio Voice Call - 使用定义的文本进行 Twilio 语音通话.
- Setup Xcode - 在适用于 macOS 图像的 Xcode 预安装版本之间切换.
- Setup Xamarin - 在预安装的 Xamarin 版本和适用于 macOS 图像的 Mono 之间切换.
- Memer Action - 程序员模因 xD 的 GitHub 操作.
- Setup Cocoapods - 设置特定版本的 Cocoapods.
- Public IP - 查询 GitHub actions runner 的公共 IP 地址.
- GitHub Actions for Lazarus/FPC
- Twilio Fax - 使用您的 Twilio 帐户通过传真发送文档.
- Setup Kubernetes tools - 在运行器上安装 Kubernetes 工具(kubectl、kustomize、helm、kubeval、conftest 和 yq).
- Setup Elastic Cloud Control Tool - 在运行器上安装特定版本的 ecctl.
- PowerShell Script - 使用工作流上下文(例如
$github.token)和 cmdlet 运行 PowerShell 脚本,返回值 => 操作输出. - Upload and Scan Files with VirusTotal
- Import a GPG Key
- Compress with UPX - 可执行文件的终极打包机.
- Pull the New Go Module Version Into the Proxy Cache - 确保最新版本的 Go 模块在代理缓存中. 还会在发布时更新 pkg.go.dev 文档.
- Delete Run Artifacts - 在工作流运行结束时删除所有工件.
- GitHub Environment Variables Action - 公开环境变量,例如分支/标签名称、存储库 slug 和 ref slug.
- GitHub Action Locks - 保证 GitHub Action 工作流的原子执行.
- Paths Filter - 根据 PR、功能分支或推送提交修改的文件有条件地运行操作.
- Minisauras - 从您的基本分支中提取所有 JavaScript 和 CSS 文件,缩小它们并使用新分支创建拉取请求.
Environments¶
- 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
Dependencies¶
- Install NPM Dependencies with Caching
- Highlight New NPM Dependencies - 对拉取请求的评论新增了 NPM 依赖信息.
- Cache NPM Dependencies
- Cache Yarn Dependencies
Semantic Versioning¶
- Next SemVers - 根据给定的 semver 版本输出主要版本、次要版本和补丁版本的下一个版本.
- Get latest SemVer and branch name given a search string
- Cut Release Branch - 在给定分支前缀和可选语义版本的情况下剪切发布分支.
- Increment Semantic Version - 根据给定的发布类型,修改给定的语义版本 (SemVer).
Static Analysis¶
- PHPStan Static code analyzer Action
- GraphQL Inspector Action
- PowerShell static analysis with PSScriptAnalyzer
- Run tfsec, with reviewdog output on the PR
Testing¶
- 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
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-normalizeto ensure your PHP project has a normalizedcomposer.json - Run Go lint checks on PR event
- Node.js - Automatically run the
formatand/orlintscript 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¶
- 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 - 将 AWS Secrets Manager 机密定义为环境值.
- Linting your AWS IAM policy documents for correctness and security issues
- Secret Spreader - 本身不是一个动作,而是一个跨存储库列表管理动作秘密的工具.
- Secrets Sync Action - 动作跨多个存储库同步秘密.
- Snyk Test Action
- Manage Your GitHub Actions Secrets With A Simple CLI
- SecretHub - 为您的秘密提供单一真实来源,并按需将它们加载到 GitHub Actions 中.
Code Coverage¶
- Scan code with SonarCloud
- Send your code coverage to codecov.io
- Publishing code coverage to CodeClimate
- Update repository go report card
Dynamic Analysis¶
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 - 在 PR 中评论你的 JS 的成本比较,如果超过限制则拒绝它们.
- Check bundlephobia - 根据 bundlephobia.io 网站评论新的和修改的包大小,并拒绝超过阈值的 PR.
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 - 自动将票证或问题编号添加到所有合并请求标题的开头.
- Pull Request Lint With Regex
- Pull Request Landmines
- Annotate a GitHub Pull Request Based on a Checkstyle XML-Report
- Pull Request Stats - 打印有关评论者的相关统计数据.
- Pull Request Description Enforcer - 强制执行拉取请求的描述.
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 - 和其他 schema.org 提取器使数据集可从 GitHub 页面中发现.
- 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
- Deploy A Static Site to GitHub Pages - 部署到自定义目录并忽略文件夹/文件.
- Deploy to GitHub Pages with Advanced Settings
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
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
Docker¶
- 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
- 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
- Update a Container Repository Description From README.md - 支持的注册表:Docker Hub、Quay、Harbor.
Kubernetes¶
- 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
AWS¶
Terraform¶
- Generate terraform documentation - 使用 terraform-docs 为 terraform 模块生成文档.
- An example of using Terraform to validate and apply GitHub administration
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
Frontend Tools¶
- Execute Gradle task
- JS Build Actions - 运行 Grunt 或 Gulp 构建任务并提交文件更改.
- GitHub Action for Gatsby CLI
- Runs a WebPageTest audit and prints the results as commit comment
- GitHub Actions for Hugo extended
- Generate OG Image - 从 Markdown 文件生成可自定义的开放图形图像.
- GitHub Actions for mdBook
- Setup Mint - 安装 Mint(用于编写单页应用程序的编程语言).
- Gatsby AWS S3 Deployment - 将 Gatsby 部署到 S3(支持 CloudFront).
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
Build¶
- run-cmake - 构建 C/C++ 软件的多平台操作 CMake 和 Ninja.
- run-vcpkg - 构建和安装 C/C++ 依赖项的多平台操作 vcpkg.
- Build Go applications for multiplatform
- Generate ~/.m2/settings.xml for Maven builds
- Run Pascal Script
- Setup Brainfuck - 设置 brainfuck 解释器.
- Publish Go Binaries to GitHub Release Assets
- Setup COBOL
Database¶
- Setup Cassandra Schema - 从 Cassandra 集群顶部提供的文件夹运行脚本.
Localization¶
- Find and automatically fix typos and grammar issues in your code
- Translation - 将文本从任何语言翻译成任何语言.
Fun¶
- Add equivalent of a like button in your README - 可视化社区对自述文件某些部分的认可(可用作投票).
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 - 使用 Docker 和 Docker Swarm 将自托管 GitHub Actions 运行器部署到 DigitalOcean.
- Setup Auto-scaled self-hosted GitHub Actions Runners on AWS Spot-instances
- Getting the Gist of GitHub Actions
> 如果您有更多资源可以分享,请不要犹豫,进行 PR. 查看 https://github.com/sdras/awesome-actions/blob/master/contributing.md 了解更多信息.
