“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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

  • 2019-08-09
  • 本文字数:2267 字

    阅读完需:约 7 分钟

所有开源项目免费使用,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 能够将使用的工具和集成与自定义操作结合起来。”

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,在问题和代码(从构建到部署)之间自动化整个工作流。

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

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


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


当然,也会有人担心 Actions CI / CD 是否会与 Jenkins、AWS CodeDeployGitLab 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/


2019-08-09 14:1018012
用户头像

发布了 497 篇内容, 共 307.2 次阅读, 收获喜欢 1907 次。

关注

评论 2 条评论

发布
用户头像
微软给力!
2019-08-09 17:03
回复
没有更多了
发现更多内容

Qt | 关于重绘事件处理函数 paintEvent()

YOLO.

c++ qt 9月月更

Qt | 关于Qt的模型/视图架构

YOLO.

c++ qt 9月月更

Qt | 关于画图类的使用 QPainter

YOLO.

c++ qt 9月月更

Qt | 实现获取网站图标和网页缩放 QWebEngineView

YOLO.

c++ qt 9月月更

Qt | 实现基于Qt WebEngine Widgets的网页浏览器

YOLO.

c++ qt 9月月更

FreeRTOS记录(三、RTOS任务调度原理解析_Systick、PendSV、SVC)

矜辰所致

Svc FreeRTOS 9月月更 Systick PendSV

软件测试 | 测试开发 | 基于Bert迁移学习点击未知弹框

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | AI测试中的数据收集

测吧(北京)科技有限公司

人工智能 测试

Qt | 关于画笔的使用 QPen

YOLO.

c++ qt 9月月更

Qt | 按钮控件的使用 QPushButton

YOLO.

qt 9月月更

NFT和元宇宙之间的关系是什么?

开源直播系统源码

NFT 区块链、 数字藏品 数字藏品系统

Qt | 如何创建一个新的模型

YOLO.

c++ qt 9月月更

HarmonyOS 3百机升级计划,来了!

HarmonyOS开发者

HarmonyOS

软件测试 | 测试开发 | 测试人生 | 疫情之下,1个月内涨薪50%拿下亿级流量金融上市公司新 offer,我柠檬了~

测吧(北京)科技有限公司

软件测试 测试 offer

Qt | 关于矩形大小的使用 QSize

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | Scrcpy工具码流格式化

测吧(北京)科技有限公司

软件测试 测试

Qt | 深入了解Qt中的模型类

YOLO.

c++ qt 9月月更

行业内对低代码开发是什么看法?

优秀

低代码开发

Qt | 关于点的坐标的使用 QPoint

YOLO.

c++ qt 9月月更

Qt | 关于目录操作的使用 QDir

YOLO.

c++ qt 9月月更

Qt | 关于颜色属性的使用 QColor

YOLO.

c++ qt 9月月更

Qt | 按钮控件的使用 QToolButton

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | python中的asyncio使用详解与异步协程的处理流程分析

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | 关于git日常用法,读懂这一篇,差不多就够了

测吧(北京)科技有限公司

git 测试

软件测试 | 测试开发 | 接口自动化中如何完成接口加密与解密?

测吧(北京)科技有限公司

Python 测试 自动化测试

软件测试 | 测试开发 | 一次JVM内存泄漏排查过程

测吧(北京)科技有限公司

Java 测试

软件测试 | 测试开发 | Sikuli 基于图形识别的自动化测试技术

测吧(北京)科技有限公司

软件测试

Qt | 按钮控件的使用 QRadioButton

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 接口自动化测试如何进行认证?

测吧(北京)科技有限公司

测试 自动化测试

软件测试 | 测试开发 | 视频编辑SDK测试

测吧(北京)科技有限公司

软件测试 sdk

软件测试 | 测试开发 | 探索Java中如何执行python脚本

测吧(北京)科技有限公司

Python 测试

所有开源项目免费使用,GitHub 内置 CI/CD终于来了!_开源_田晓旭_InfoQ精选文章