使用checkout插件下载构建代码

流水线任务每次运行时,会调度一个全新的实例。如果任务的运行依赖Repo中的代码,那么每次用户都需要手动拉取用于构建的代码。为了提升拉取代码的速度,降低拉取代码的功能门槛,社区提供了checkout插件。本文介绍如何使用checkout插件下载构建代码。

插件使用

Serverless-cd社区提供checkout插件,用于拉取构建的代码。checkout插件已经适配应用中心的逻辑,会默认拉取触发构建的Git事件对应的代码版本。

在执行上下文中定义拉取代码的配置

在应用中心中创建的流水线,会在执行上下文中自动填充当前Git事件对应的代码版本的拉取方式。示例如下。

---
# 提交流水线执行
kind: Pipeline
name: "p-<% .git.shortCommitId %>-<% .currentTimestampMs %>"
# 描述信息
description: cached pipeline
spec:
  context:
    data:
      # 用户不需要设置,应用中心触发时会自动填充
      checkout:
        provider: "gitlab"
        remote: "https:*:*//gitlab.com/*/*.git"
        ref: "+*:refs/remotes/origin/master"
        token: "*"
        userName: "*"
        branch: "master"
        commit: "*"
  templateName: mytemplate-<% .git.branch %>
---

在Steps中使用checkout插件

在流水线模板或任务模板中,可以通过执行上下文Steps,使用checkout插件。一般第一个Step就需要checkout插件,插件执行完毕后,会将指定的代码版本拉取到本地。用户可以基于拉取的代码,进行任意的动作。示例如下。

---
kind: PipelineTemplate
name: mytemplate-<% .git.branch %>
description: cached pipelinetemplate
spec:
  context:
    data:
      envName: test
      deployFile: s.yaml
  tasks:
  # 构建部署
  - name: build-and-deploy
    context:
      data:
        enable: true
        steps:
          # 拉取代码
          - plugin: "@serverless-cd/checkout"
          # 初始化s工具
          - plugin: "@serverless-cd/s-setup"
          # 使用其他插件或脚本,执行任意动作
          # - run: make build && make deploy
          # - plugin: "@serverless-cd/others" 
    taskTemplate: serverless-runner-task
---