全部产品
云市场

使用自定义构建发布

更新时间:2019-09-10 18:33:04

自定义构建功能,指通过读取代码库中的配置文件,根据配置文件指定的 docker 镜像,拉起容器进行构建。构建的步骤、执行命令、以及构件产物的定义都是在配置文件中进行配置。

构建过程

  • 触发构建之后,系统根据接口提供的代码仓库地址,将代码下载下来。
  • 读取构建配置文件内容并解析,根据配置对应的 docker 镜像拉起容器,并在容器中执行构建命令。
  • 构建成功之后,根据构建产物配置,将对应产物上传到对象存储(OSS)中。

配置文件

配置文件路径

默认读取代码目录下的 .linkb-build.yml 文件作为构建配置文件。

配置文件示例

配置文件以 YAML 进行构建的编排,以下为配置文件示例(SpringBoot 工程示例)。

  1. build:
  2. image: reg-docker.linke.alipay.com/maven-build/builder-maven3.6.0-jdk1.8:1.0.0
  3. script:
  4. - mvn --version
  5. - mvn clean install -s ./settings.xml -Dmaven.test.skip=true -Dmaven.repo.local=$HOME/.m2
  6. - tar zxvf target/output.tgz xxx_1/target/xxx.jar xxx_2/target/xxx.jar
  7. artifacts:
  8. - {
  9. name: "demo-springboot-0.0.1-SNAPSHOT.jar",
  10. desc: "Springboot executable fat jar",
  11. paths:["target/demo-springboot-0.0.1-SNAPSHOT.jar"]
  12. }
  13. - {
  14. name: "output.tgz",
  15. paths:["target/output.tgz"]
  16. }
  • image 标签:指定构建所使用的容器。示例中的 reg-docker.linke.alipay.com/maven-build/builder-maven3.6.0-jdk1.8:1.0.0 是目前唯一支持的 docker 镜像。其中,镜像提供了一个 CentOS 7 的容器环境,容器中配置了 maven 3.6.0、jdk 1.8。
  • script 标签:指定构建所需要执行的 shell 命令,从上到下依次执行。
  • artifacts 标签:指定构建的产物,支持依次构建多个产物的配置。其中:
    • name:表示依次构建的产物名称。在 artifacts 中,每个产物的 name 必须唯一,不能为空。
    • desc:构建产物的描述,可以为空。
    • paths:在执行完构建命令之后,产物在代码目录的路径,不能为空。