加速 CI [GitHub Actions],您可以立即完成!

加速 ci [github actions],您可以立即完成!

还在为缓慢的 CI 流程烦恼吗?

本文将分享三种利用 GitHub Actions 提升 CI 速度的实用技巧。

三种加速 GitHub Actions CI 的方法

我们将探讨以下三种方法:

任务拆分添加包缓存机制测试拆分与并行执行

任务拆分

通过拆分任务,实现并行执行,显著提升效率。

例如,单元测试和代码风格检查通常可以独立运行。将它们分别定义在不同的 job 中,比在单个 job 中顺序执行效率更高。

jobs:  test:    runs-on: ubuntu-22.04    steps:      # ...单元测试步骤...  lint:    runs-on: ubuntu-22.04    steps:      # ...代码风格检查步骤...

登录后复制

添加包缓存机制

缓存软件包,避免重复安装,节省大量时间。

利用官方的 actions/cache action 实现缓存流程。

以下示例中,只有操作系统、Node 版本或 package-lock.json 文件发生变化时,才会执行 npm ci,否则将直接使用缓存。

- name: Cache and restore packages  id: cache-npm  uses: actions/cache@v4.0.2  with:    path: node_modules    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}- name: Install npm packages  if: steps.cache-npm.outputs.cache-hit != 'true'  run: npm ci  shell: bash

登录后复制

测试拆分与并行执行

如果测试执行时间过长,可以将测试拆分,并行运行每个部分

例如,使用 Jest,可以结合矩阵策略和 –shard 选项。矩阵策略简化了测试拆分与并行执行。 –shard 选项则用于分割测试。

以下示例展示了如何定义工作流程:

jobs:  test:    runs-on: ubuntu-22.04    strategy:      matrix:        shard: [1/4, 2/4, 3/4, 4/4]    steps:      - name: Checkout code        uses: actions/checkout@v3      - name: Setup environment        uses: ./.github/actions/setup      - name: Run tests        run: npx jest --ci --shard=${{ matrix.shard }}

登录后复制

这将并行运行 4 个作业,每个作业执行四分之一的测试。 –shard 选项并非 Jest 独有,类似的策略可以应用于其他测试框架。

更多优化方法

以上介绍了三种简单有效的加速 CI 的方法:任务拆分、包缓存和测试并行化。

除此之外,还可以考虑使用更强大的运行器,或者仅在修改的代码区域运行测试等高级优化策略。

建议根据实际情况和资源限制,选择合适的优化方案,最大限度地提升 CI 效率。

以上就是加速 CI [GitHub Actions],您可以立即完成!的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2644041.html

(0)
上一篇 2025年3月7日 07:09:54
下一篇 2025年2月27日 19:08:20

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • QIKS简介

    作为开发者,我始终致力于打造兼具简洁性和灵活性的实用工具。近期,我潜心开发了一系列工具,涵盖多个开发领域,例如轻量级框架gland(受express启发)和高效日志库md-logger。此外,我还参与了tideityiq (tdq) 等项目…

    2025年3月7日
    200
  • 你从来不知道存在的令人惊叹的 Github 存储库

    GitHub:程序员的秘密花园 学习编程容易,编写高质量代码却难。GitHub是程序员的知识宝库,汇聚了无数优秀代码,助你提升编程技能。探索GitHub,学习简洁高效的代码风格,提升编程水平。 精选GitHub优质项目推荐: notwald…

    2025年3月7日
    200
  • 使用 JS 管理国家和货币

    处理全球化的项目时,管理国家和货币列表及其格式化方式可能很复杂。 country-currency-utils npm 包应运而生,它以 TypeScript 编写,旨在简化这个过程,无论是在前端还是后端。该包避免在代码库中直接包含庞大的国…

    2025年3月7日
    200
  • WebFormsJS 的缩小版本

    JavaScript 代码最小化详解 代码最小化是指移除代码中冗余元素(如多余空格、换行符和注释)的过程,从而减小文件大小,而不会影响代码功能和性能。 WebFormsJS 库的最小化版本现已发布 WebFormsJS 最新版本为 1.5 …

    2025年3月7日
    200
  • 5 年内支持 Nodejs 开发的基本工具

    在动态发展的网络开发领域,紧跟技术前沿至关重要。Node.js作为构建高扩展性、高动态性应用的首选JavaScript运行时环境,其地位日益稳固。无论您是资深开发者还是初入Node.js领域的企业家,选择合适的工具都将直接影响开发效率和项目…

    2025年3月7日
    200
  • 认识 Tab-R:我的新浏览器扩展

    大家好! 让我隆重向您介绍Tab-R——一款我过去半年倾力打造的浏览器扩展程序。它兼容基于Chromium内核的浏览器和Firefox。 Tab-R 的灵感源于我对浏览器默认新标签页的诸多不满。它们总是显得单调乏味,仅仅是一个搜索框,缺乏其…

    2025年3月7日
    200
  • 高级 TypeScript:深入探讨现代 TypeScript 开发

    深入TypeScript:掌握现代TypeScript开发的进阶技巧 TypeScript已成为构建可扩展JavaScript应用程序的事实标准。本指南将深入探讨TypeScript的高级特性,助您提升开发技能,编写更安全可靠的代码。 1.…

    2025年3月7日
    200
  • 整洁代码的艺术:为什么它不仅仅是编写代码

    编写代码很容易,但编写干净、易于维护的代码却是一门艺术。 干净的代码并非仅仅是代码美观,更是关乎软件的可读性、可理解性和可扩展性。它决定着项目是蓬勃发展还是沦为噩梦。本文将探讨干净代码的重要性、如何让开发者和企业受益,以及提升编码实践的实用…

    2025年3月7日
    200
  • 如何使用 Node.js 和 Express 设置 TypeScript

    使用 Node.js 和 Express 通过 TypeScript 创建服务器是使用 JavaScript 的一个很好的替代方案,因为它可以更轻松地管理复杂的应用程序,并且在您需要与分布式开发团队协作时提供帮助。 使用 Node.js 和…

    2025年3月7日 编程技术
    200
  • 如何创建 React 博客:分步指南

    构建一个功能强大的 React 博客从未如此轻松!本指南将引导您逐步创建一个完整的 React 博客,并提供个性化建议和最佳实践,无论您是新手还是经验丰富的开发者,都能从中受益。 React 博客的优势 React 的灵活性和组件化架构使其…

    2025年3月7日
    200

发表回复

登录后才能评论