跳到主要内容

您的第一个管道

让我们开始创建您的第一个管道。

1. 仓库激活

要在 Woodpecker 中激活您的仓库,请导航到仓库列表并点击 新建仓库。您将看到来自您的代码托管平台(GitHub、GitLab 等)的仓库列表,只需简单点击即可激活。

新建仓库列表

要在 Woodpecker 中启用仓库,您必须拥有该仓库的 管理员 权限,这样 Woodpecker 才能添加称为 webhook 的东西(Woodpecker 需要它来了解推送、拉取请求、标签等操作)。

2. 定义第一个工作流

启用仓库后,Woodpecker 将监听您仓库中的更改。当检测到更改时,Woodpecker 将检查管道配置。让我们在您的仓库内创建一个文件 .woodpecker/my-first-workflow.yaml

.woodpecker/my-first-workflow.yaml
when:
- event: push
branch: main

steps:
- name: build
image: debian
commands:
- echo "这是构建步骤"
- echo "binary-data-123" > executable
- name: a-test-step
image: golang:1.16
commands:
- echo "正在测试..."
- ./executable

那么我们在这里做了什么?

  1. 我们定义了您的第一个工作流文件 my-first-workflow.yaml

  2. 当在 main 分支上发生推送事件时,此工作流将被执行, 因为我们使用 when 部分添加了过滤器:

    + when:
    + - event: push
    + branch: main

    ...
  3. 我们定义了两个步骤:builda-test-step

这些步骤按照定义的顺序执行,因此 build 将首先执行,然后是 a-test-step

build 步骤中,我们使用 debian 镜像并构建一个名为 executable 的"二进制文件"。

a-test-step 中,我们使用 golang:1.16 镜像并运行 executable 文件来测试它。

您可以使用您有权访问的注册表(如 Docker Hub)中的任何镜像:

 steps:
- name: build
- image: debian
+ image: my-company/image-with-aws_cli
commands:
- aws help

3. 推送文件并触发第一个管道

如果您现在将此文件推送到您的仓库,Woodpecker 将已经执行您的第一个管道。

您可以通过导航到仓库的 管道 部分在 Woodpecker UI 中检查管道执行情况。

管道视图

正如您可能注意到的,还有另一个名为 clone 的步骤在您的步骤之前执行。此步骤将您的仓库克隆到名为 workspace 的文件夹中,该文件夹在所有步骤中都可用。

例如,这允许第一步使用您的源代码构建应用程序,而第二步将接收相同的工作空间,它可以使用先前构建的二进制文件并测试它。

4. 使用插件执行可重用任务

有时您在每个项目中都需要执行一些任务。例如,部署到 Kubernetes 或发送 Slack 消息。因此,您可以使用官方和社区插件之一,或者简单地创建您自己的插件。

如果您想将文件发布到 S3 存储桶,可以将 S3 插件添加到您的管道中:

steps:
# ...
- name: upload
image: woodpeckerci/plugin-s3
settings:
bucket: my-bucket-name
access_key: a50d28f4dd477bc184fbd10b376de753
secret_key:
from_secret: aws_secret_key
source: public/**/*
target: /target/location

要配置插件,您可以使用 settings 部分。

有时您需要向插件提供密钥。您可以通过使用 from_secret 键来完成此操作。密钥必须在 Woodpecker UI 中定义。您可以在密钥相关文档中找到更多信息。

与文件顶部用于完整工作流的 when 部分类似,您可以为每个步骤使用 when 部分来定义何时应执行步骤。

了解更多关于插件的信息。

既然您现在对如何创建管道有了基本了解,您可以深入了解工作流语法和插件的相关内容。