跳到主要内容

基于yaml的构建工作流

团结云开发的自动构建是基于Github Actions(https://docs.github.com/zh/actions)扩展而来。 因此其工作流的语法遵循Github Actions工作流的方式(https://docs.github.com/zh/actions/using-workflows/about-workflows

工作流基本内容

为了更好地帮助用户了解工作流的基本内容,这里使用一个简单的yaml示例来解释工作流的不同部分。

# 定义工作流的名称为 Devops Sample Workflow
name: Devops Sample Workflow

# 定义触发工作流的事件为 push 操作
on: [push]

jobs:
# 定义名为 build 的任务
build:
# 任务的名称为 Checkout my project
name: Checkout my project
# 为了让工作流可以正常触发,需要指定正确的 runs-on 标签
# https://devops.unity.cn/help/docs/reference/config
runs-on: windows-server-2022-tuanjie-1.1.0-pc-8c-16g
steps:
# 第一步:检出项目仓库
- name: Check out project repository
# 使用 actions/checkout-plasticscm@v1 这个操作
uses: actions/checkout-plasticscm@v1
# 为操作设置参数,指定检出的路径为 my_project
with:
path: my_project

# 第二步:列出仓库内容
- name: List repository content
# 执行命令 ls -l. 以列出当前目录的详细内容
run: ls -l.

同时,在工作流中还可以通过 ${{ vars.XXX }} 和 ${{ secrets.YYY }} 的方式来使用项目中配置的环境变量和 Secrects。

使用环境变量可以在不更改工作流内容的情况下调整构建流程;而 Secrects 则可以确保一些敏感数据的安全性,以便其不会在构建日志中以明文的方式呈现。

以如下工作流片段为例:

- uses: actions/checkout@v3
with:
repository: UIWidgets/com.unity.uiwidgets
ref: ${{ vars.CHECKOUT_TAG }}
github-server-url: https://github.com/
token: ${{ secrets.MY_GITHUB_PAT }}

该片段通过使用 actions/checkout@v3 来签出https://github.com/ 上的UIWidgets/com.unity.uiwidgets 仓库, 并且指定签出的标签由环境变量中的 CHECKOUT_TAG 指定, 而签出时所用的 personal access token (https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) 由 Secrects 中的MY_GITHUB_PAT 指定。

另外,在云构建中保留了 Github Actions 的上下文信息 (https://docs.github.com/zh/actions/learn-github-actions/contexts), 可以通过 {context} 的方式在工作流中使用,以便按用户需求来完善构建流程。 比如通过 { github.workspace }来获得构建流程的工作目录, 或者通过 {steps.<step_id>.outputs.<output_name>}来获得特定任务步骤的特定输出值。

触发工作流

构建节点镜像列表

详细见 云构建服务器