更新时间:2024-04-03 GMT+08:00

yaml文件结构详解

yaml文件示例:

该示例是一个简单的通过yaml文件执行Maven构建模板:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: 2.0 # 必须是2.0
params: # 构建参数,可在构建过程中引用
  - name: paramA
    value: valueA
  - name: paramB
    value: valueB
env: # 非必填,但优先级最高,若在此定义了主机规格与类型,则不使用任务配置>基本信息里面选择的主机类型和规格
  resource:
    type:docker # 资源池类型:docker、Linux、MAC或custom
    arch:X86 # 构建环境主机类型:X86或ARM
    class:8U16G # 规格:2U8G、4U8G、8U16G、16U32G或16U64G,当type为custom时无需填写该参数
    pool:Mydocker #资源池名称,当type为custom时需要填写该参数
steps:
  PRE_BUILD:
    - checkout:
        name: 代码下载 # 可选
        inputs: # 步骤参数
          scm: codehub # 代码来源:只支持Repo
          url: xxxxxxxxx # 拉取代码的ssh地址。
          branch: ${codeBranch} # 拉取的代码分支:支持参数化。
    - sh:
        inputs:
          command: echo ${paramA}
  BUILD:
    - maven: # 步骤关键字,仅支持特定关键字
	name: maven build # 可选
	image: xxx # 可以自定义镜像地址,请看下方说明 
	inputs:
	  command: mvn clean package
    - upload_artifact:
	inputs:
          path: "**/target/*.?ar"

在这个yml文件中,主要分为四个部分:

  • 版本号(version):示例文件中定义了“version”为2.0,该版本号必填且唯一。
  • 构建环境(env):示例文件中定义了资源池类型、构建环境主机类型、主机规格。
  • 构建参数(params):示例文件中定义了“paramA”和“paramB”两个参数,可在构建过程中引用被定义的参数,构建参数可不填,优先使用任务配置中的构建参数。
  • 构建步骤(steps):示例文件中“steps”层级下又分为三个阶段:
    • PRE_BUILD:用于做构建前的准备,例如下载代码,执行shell等。
    • BUILD:用于构建,其下可定义maven、npm、go、python、ant、CMake、mono、sbt、android、bazel等主流工程构建。构建完成后,可定义制作镜像上传到SWR仓库、上传文件到OBS、下载文件、上传二进制包至仓库、下载二进制包、执行docker命令等构建后操作。
    image有两种格式:
    • cloudbuild@maven3.5.3-jdk8-open ,以cloudbuild开始,@作为分隔符,后面是编译构建提供的默认镜像。
    • 完整的swr镜像地址,例如:swr.example.example.com/codeci_test/demo:141d26c455abd6d7xxxxxxxxxxxxxxxxxxxx

构建步骤介绍

在steps中,共有PRE_BUILD和BUILD两个阶段,每一个阶段都可以定义一系列的构建步骤,支持定义的构建步骤,详见下表:

PRE_BUILD

说明

操作指导

- checkout

代码下载

使用yaml配置代码下载

- sh

执行shell命令

使用yaml配置执行shell命令

BUILD

说明

操作指导

- maven

Maven构建

使用yaml配置Maven构建

- npm

NPM构建

使用yaml配置NPM构建

- yarn

Yarn构建

使用yaml配置Yarn构建

- go

Golang构建

使用yaml配置Go构建

- gulp

gulp构建

使用yaml配置gulp构建

- grunt

Grunt构建

使用yaml配置Grunt构建

- php

PHP构建

使用yaml配置PHP构建

- gnu_arm

Gnu-arm构建

使用yaml配置Gnu-arm构建

- python

SetupTool构建

PyInstaller构建

Python构建

使用yaml配置SetupTool构建

使用yaml配置PyInstaller构建

使用yaml配置Python构建

- gradle

Gradle构建

使用yaml配置Gradle构建

- ant

Ant构建

使用yaml配置ant构建

- cmake

CMake构建

使用yaml配置CMake构建

- mono

mono构建

使用yaml配置mono构建

- flutter

Flutter构建

使用yaml配置Flutter构建

- sbt

sbt构建

使用yaml配置sbt构建

- android

Android构建

使用yaml配置Android构建

- android_sign

Android APK签名

使用yaml配置Android APK签名

- quick_app

Android快应用构建

使用yaml配置Android快应用构建

- bazel

bazel构建

使用yaml配置bazel构建

- grails

Grails构建

使用yaml配置Grails构建

- build_image

制作镜像并上传到SWR仓库

使用yaml配置制作镜像并上传到SWR仓库

- upload_obs

上传文件至OBS

使用yaml配置上传文件至OBS

- download_file

下载文件

使用yaml配置下载文件

- upload_artifact

上传二进制包到仓库

使用yaml配置上传二进制包至仓库

- download_artifact

下载二进制包

使用yaml配置下载二进制包

- docker

执行docker命令

使用yaml配置执行docker命令