流水线任务每次运行时,会调度一个全新的实例。如果任务的运行依赖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
---
文档内容是否对您有帮助?