所有开源项目免费使用,GitHub 内置 CI/CD 终于来了!

Posted InfoQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了所有开源项目免费使用,GitHub 内置 CI/CD 终于来了!相关的知识,希望对你有一定的参考价值。

2019 年 8 月 8 日,GitHub 官方博客发文称,程序员期待已久的功能来了,Github Actions 终于支持内置 CI/CD 了,并对所有开源项目免费!目前该功能可以在 Beta 版本中测试使用,11 月 13 日 GitHub Actions 将在 GitHub Universe 上正式发布!

2018 年,微软收购 GitHub 之后,在社区产品上进行了一系列的创新和努力,GitHub Actions 就是其中的一个重磅新产品。


GitHub Actions 的主要作用就是让用户能够在 GitHub 服务器上直接执行和测试代码,只需几个简单步骤就可以实现构建、共享和执行代码。GitHub 的平台主管 Sam Lambert 将 Actions 与 ios 中的快捷键(shortcut)类比:“想象一个更加灵活的快捷键,托管在 GitHub 上,且允许所有人在容器内创建 Actions 来增强和连接工作流。”

GitHub Actions 发布之初,GitHub 高级技术副总裁 Jason Warner 表示:“无论您使用的是哪种语言或平台,通过将开源原则应用于工作流自动化,GitHub Action 能够将使用的工具和集成与自定义操作结合起来。”

1 CI/CD 快速入门使用指南

GitHub Action 内置的 CI/CD 工作流可以在哪里运行呢?GitHub 用三个任何回答了这个问题:

  • 任何 OS:利用 GitHub 托管的环境,你可以在任何 OS 上运行你的 CI/CD 工作流,包括 Linux、macOS、 Windows 以及容器和虚拟机。

  • 任何语言:GitHub Actions 支持众多语言和框架:Node.js、Python、 Java、 php、 Ruby、 Go、 Rust、 C/C++、 .NET、 android、 iOS 等等。

  • 任何云:AWS、Azure 或是 GCP,GitHub Actions 都支持,用户可轻松将代码部署到心仪的云平台。如果构建使用 CI/CD 呢?GitHub 官方博客也给出了详细的使用指南。

Matrix builds  

Matrix builds 允许用户并行构建测试项目的多个版本,只需在 actions yaml 文件中添加几行代码,GitHub 会自行处理其它部分。

jobs:  test:    name: Test on node ${{ matrix.node_version }} and ${{ matrix.os }}    runs-on: ${{ matrix.os }}    strategy:      matrix:        node_version: [8, 10, 12]        os: [ubuntu-latest, windows-latest, macos-latest]
    steps:    - uses: actions/checkout@v1
    - name: Use Node.js ${{ matrix.node_version }}      uses: actions/setup-node@v1      with:        version: ${{ matrix.node_version }}        - name: npm install, build and test      run: |        npm install        npm run build --if-present        npm test
实时日志显示实时反馈

实时日志可在运行时实时反馈构建过程。GitHub 将日志流式传输到 Actions 控制台,实时显示状态,日志的形式更便于阅读,而且还可以输入 emoji。另外,用户可以将永久链接深入链接到日志文件中的任意行,便于讨论构建成败或测试结果。


编写和重用代码等操作和工作流程

GitHub Actions 就是代码,用户可以想使用代码一样编辑、重用、共享和分叉。在分叉存储库时,可以将操作与源代码一起分叉,同时还可以使用与原始项目相同的操作来测试和构建项目。

Actions 使用全新的语法来表达基于 YAML 的工作流,用户可以将操作和工作流引用为简单的存储库引用来重用它们,从而将其轻松地拼接到工作流中。用 javascript 编写或者创建的容器 Action,可以与完整的 Github API 和任何其他公共 API 交互。

自动化工作流程

GitHub Actions 不仅可以构建、测试和部署应用程序,同时还可以自动执行开发人员工作流程中的其它任务,例如分类和管理问题、自动发布版本、与用户群协作等等。Actions workflows 可在 GitHub 开发人员生命周期的任意环节被触发,并且 GitHub 应用程序支持添加自己的自定义事件。

构建在集成的包和容器注册表上

GitHub Actions 可以与 GitHub Package Registry 或其它注册表集成,轻松使用和发布软件包,例如 JavaScript (npm)、 Java (Maven)、 Ruby (RubyGems)、 .NET (NuGet)、 Docker 镜像等等。开发人员获得 Actions 访问权限之后,可以在普遍可用之前访问 GitHub Package Registry,在问题和代码(从构建到部署)之间自动化整个工作流。

2 GitHub 要与其它 CI/CD 厂商打擂台?

除了如何使用,GitHub 也官方宣布了极其优惠的价格:GitHub Actions 对于开源项目是完全免费的,对于私有项目,每个月有 2000 分钟的免费额度。

GitHub Actions 内置 CI/CD 获得了很多开发者的支持,  Yarn 维护者 MaëlNison 表示:“GitHub 用户和喜欢这个计划,我们拥有的基础设施摩擦力越低,与外部贡献者合作就变得越容易。使用 GitHub Actions 进行 CI 和分类问题等常见任务,可以减少很多开发障碍,让我们专注于写出好的产品。”

当然,也会有人担心 Actions CI / CD 是否会与 Jenkins、 AWS CodeDeploy 或 GitLab CI 等其他 CI / CD 工具竞争。对此,GitHub 产品设计高级总监 Max Schoening 表示:“我们从未将其它 CI/CD 工具或厂商视为竞争对手,GitHub Actions 是社区驱动支持的工作流程自动化。GitHub 和我们的社区一直相信选择和开放的生态系统,这是我们对待每件事的态度。GitHub Actions 允许开发人员集成他们现有的所有工具,混合和匹配新的开发人员产品,并连接到软件生命周期的所有部分,包括现有的 CI / CD 合作伙伴。”

CircleCI 首席执行官 Jim Rose 在一份声明中表示:“自 2011 年以来,CircleCI 一直在构建 CI / CD 平台,而 GitHub 是一个很好的合作伙伴。GitHub Actions 进一步验证了 CI / CD 对每个软件团队的成功只管重要。我们相信开发人员在开放、互联的生态系统中能茁壮成长,我们期待与 GitHub 共同领导 CI / CD 的发展。”

参考链接:https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/


点个在看少个 bug

以上是关于所有开源项目免费使用,GitHub 内置 CI/CD 终于来了!的主要内容,如果未能解决你的问题,请参考以下文章

通过开源项目免费申请Jetbrains全家桶教程

拥有 GitHub 开源项目的小伙伴,免费申请 JetBrains 全家桶的全流程详解

GitHub 上 10 款免费开源 Windows 工具

从GitHub下载免费开源软件太慢,推荐几个网站轻松提速!

GitHub 开源推荐 | mpv - 一个免费开源跨平台的多媒体播放器

开源项目 | 如何免费创建云端爬虫集群