本文转自机器之心,作者:一鸣、张倩
开发者除了开发程序代码之外,有时候需要面对各种编译、测试和部署过程中的繁琐流程。这些流程往往需要手动完成,且由于不同开发者的开发环境、版本和平台不同,需要专门针对特定的环境定制工作流,因此阻碍了开源代码在社区中的传播。现在,这一切可能会自动化地完成了。近日,GitHub Actions,一个让开发者自动化实现定制化工作流逻辑的平台,集成了持续集成和交付(CI/CD)功能,可以让开发者自动化完成一系列工作流。

跨平台多语言支持的测试环境
自动化代码构建和部署工作流
可复用的 action 和工作流文件
实时显示运行结果
自动构建集成化的包和容器库
基于机器学习的建议工作流
对公开代码库免费的定价策略
能够实现这样的功能是因为,GitHub Actions 平台是定制化的,可以使用 GitHub 的 API 和任何开源的第三方 API,以便于和代码库进行交互。当开发者把存储库中的代码转换成一个 action 时,只需为它编写一个 Docker 文件。Docker 文件可以被 GitHub 构建运行,并链接到工作流程中。此外,GitHub 还提供了一个可视化编辑器,用于帮助开发者在不使用 Docker 的情况下构建工作线程。
熟悉 GitHub、程序编译、部署、发布流程的开发者朋友应该知道,开发过程中有许多目前无法自动化的环节。例如,在项目开源时,出现了各种 issue 和 merge 请求,需要开发者手动管理。在源代码编译为程序时,需要集成各种依赖和相关的库,其中需要管理各种各样的编译流程,为代码创造合适的编译环境。在部署程序前,需要在各个平台和各个版本进行测试,避免发生不兼容等问题。有了 Actions 平台后,开发者可以自己编写工作流 YAML 文件,并借助 Actions 平台完成上述工作。更重要的是,在发布自己的程序后,编译、测试和部署的工作流也可以共享给其他开发者。其他开发者可以直接 fork 并运行,不再需要繁琐的准备程序运行环境和安装相关依赖。这些都加快了开源代码的传播,使开发者社区有了更紧密的联系和交流。
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
参考链接:https://help.github.com/en/categories/automating-your-workflow-with-github-actions
「GitHub 交流群」已开放
想入群的可在公众号后台回复「入群」