亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

GitHub Actions隱藏寶石:讓你的工作流自動化更上一層樓的10大絕招

GitHub Actions 已经彻底改变了我们自动化工作流程的方式,尤其是在 DevOps 驱动的世界中。当然,你已经见过基本的东西:CI/CD 管道、测试和部署等。但是,还有一个超越标准用例的新世界——一个充满隐藏宝藏的世界,这些宝藏可以让你的工作流程效率大幅提升,以你未曾想到的方式。

今天要介绍的是虽然被低估但功能强大的10个GitHub Actions(操作)。

1. YAML 验证器

YAML 文件驱动着大多数 CI/CD 工作流,但一个缩进错误就可能引发严重问题。这个操作在你提交 YAML 前验证它们,避免你在调试故障管道上浪费数小时的时间。

适用于:

  • 确保您的 .github/workflows 目录中的语法正确。
  • 避免在 Kubernetes YAML 文件中发生配置错误。

- name: 验证 YAML 文件 (用于验证 YAML 文件是否符合规则) uses: ibiqlik/action-yaml-lint@v3 (使用这个 action 来执行验证) with: config_file: '.yamllint' (配置文件的路径)

2. Markdown链接检查工具

你有没有发布过文档,却发现里面有些链接已经失效?它会扫描你的 Markdown 文件中的链接,并标出这些失效的链接。

适用于:

  • 确保 README 文件和文档准确无误。
  • 在开源仓库中保持专业态度。

示例:

- name: 检查 Markdown 链接  
  uses: gaurav-nelson/github-action-markdown-link-check@v1  

3. 自动分配PR (拉取请求)

此操作自动化了分配审阅者和团队成员给拉取请求的任务,减少了手动分配任务的繁琐。

可以用于:

  • 确保代码审查工作总是交给合适的人来做。
  • 确保你的团队遵循严格的审查规定。

比如说,

- name: 自动分配 PR 任务 uses: kentaro-m/auto-assign-action@v1 with: 分配人员: '团队主管' 审查人员: '高级开发'


**4\. Commitlint(用于检查提交信息的工具)**

清晰的提交备注有助于更好的协作。此操作会检查你的提交备注是否符合预定义的规范(例如 Angular、Conventional Commits 等)。

可以用于:

* 为了在大型团队中确保一致的提交信息。
* 简化变更日志的生成和版本的语义化管理。

```- name: Commitlint  # 名称为Commitlint
uses: wagoid/commitlint-github-action@v5  # 使用此插件进行提交规范检查

5. 缓存相关的依赖

缓存依赖项可以显著加快你的CI构建速度。这个操作允许你在构建之间重用依赖项,从而节省时间和减少网络流量。

可以用来:

  • 有较多依赖安装的Node.js、Python或Ruby项目。
  • 构建产物较大的任何项目。
- name: 缓存 Node 模块  
  使用: actions/cache@v3  
  with:  
    path: ~/.npm  
    key: ${{ runner.os }}-node-${{ 文件路径('**/package-lock.json') 的哈希值 }}  
    恢复密钥: ...
      ${{ runner.os }}-node-

6. 在 Slack 上通知

在 Slack 中获取关于工作流状态的实时更新。不论构建成功与否,无需频繁查看 GitHub,团队就能随时了解情况。

可用于:

  • 立即为部署失败发出警报。
  • 让非技术人员了解情况。
- 名称: 通知 Slack  
uses: rtCamp/action-slack-notify@v2  
with:  
webhook-url: ${{ secrets.SLACK_WEBHOOK }}  
消息内容: "部署状态: ${{ job.status }}"  

7. 许可证合规检查工具

通过确保所有项目依赖关系符合组织的许可规定,来避免法律纠纷。

可以用于:

使用外部库的开源项目。
需要严格许可证的企业项目。

示例:

- name: 许可证检查  
  uses: anchorfree/license-check-action@v2

8. 代码请求大小标签器

根据大小自动为拉取请求打上标签,比如小、中、大。这有助于审阅者据此优先处理,合理安排时间。

适用于:

  • 团队有高的PR量。
  • 避免功能分支的范围蔓延。

示例:
- name: PR 大小标签器 uses: kentaro-m/size-label-action@v3

9. 用 Trivy 做安全扫描。

安全绝对不能轻视,不应该只是事后才想到的事情。Trivy 检查您的容器镜像和依赖项是否有漏洞。

可以用于:

  • 确保您的 Docker 镜像适合生产环境。
  • 找出过时或有漏洞的依赖。

示例:

— name: 安全扫描  
  uses: aquasecurity/[email protected]  
  with:  
    image-ref: myapp:latest

— name: 安全扫描

uses: aquasecurity/[email protected]

参数:
image-ref: myapp:latest

10. 自动合并 Dependabot 的更新

Dependabot 会帮你保持依赖项更新,但手动审查和合并每一个更新可能会很麻烦。此操作会自动合并通过你 CI 测试的所有更新。

可以用于:

  • 自动保持依赖项的安全并及时更新,无需人工干预。
  • 减少活跃项目中的维护工作量。

例如:
- name: 自动合并 Dependabot 依赖 uses: ahmadnassri/action-dependabot-auto-merge@v2

GitHub Actions 并不仅仅是一个 CI/CD 工具——它是一个用于构建工作流的平台,能提升工作效率、确保高质量并减少瓶颈问题。

你会在工作流中添加哪个操作?或者有没有没列出来的最爱操作?下面来讨论一下吧!

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消