管道将kubernetes管道步骤作为 Kubernetes Pod 中的容器执行。容器提供隔离,允许在同一台机器上安全地执行并发管道。
1、kind 和 type 属性定义了一个 Kubernetes 管道
2、steps部分定义了一系列 shell 命令。这些命令在 Docker 容器中作为Entrypoint. 如果任何命令返回非零退出代码,则管道失败并退出。
Metadata
1、使用该metadata部分提供唯一标识的管道资源。示例配置定义了管道命名空间:
Triggers 触发器
当您将代码推送到您的存储库、打开拉取请求或创建标签时,您的源代码控制管理系统会自动向 Drone 发送一个 webhook,从而触发管道执行。使用触发器部分来限制管道执行。
可以在触发器中使用通配符匹配。*请注意,触发器使用 glob 模式匹配,而不是正则表达式。
ref:
- refs/heads/master
- refs/heads/**
- refs/pull/*/head
您还可以组合多个触发器。*请注意,在组合多个触发器时,所有触发器都必须评估为真。
branch:
- master event:
- push
包括语法
branch:
include:
-master
-feature/*
排除语法
event:
exclude:
-pull_request
Platform
使用platform部分配置目标操作系统和体系结构,并将管道路由到适当的运行器。
Workspace
Drone 会自动创建一个临时卷,称为您的工作区,它会在其中克隆您的存储库。工作区是管道中每个步骤的当前工作目录。
因为工作空间是一个卷,所以文件系统更改在管道步骤之间保持不变。换句话说,各个步骤可以使用工作空间文件系统进行通信和共享状态。
管道容器内的工作区路径:
Cloning
Drone 在执行管道步骤之前会自动克隆您的存储库。无需特殊配置。但是,在某些情况下,您可能需要自定义、覆盖或禁用默认克隆行为
The --depth flag
默认克隆配置确实使用该--depth标志。clone您可以通过声明一个块并添加depth属性来强制克隆深度:
# The --tags flag
默认克隆配置不使用该--tags标志。如果您想获取标签,您应该将其作为管道中的一个步骤来处理。例如:
Steps
流水线步骤被定义为一系列shell命令,这些命令在您的git存储库的根目录中执行。git存储库的跟目录(也称工作区)由管道中的所有步骤共享。
Commands会覆盖docker入口点
secret
Drone 提供了使用from_secret语法从命名机密中获取任何配置参数的能力。
image
流水线步骤被定义为一系列 Docker 容器。因此,每个步骤都必须定义用于创建容器的 Docker 映像。