跳到主要内容

您的第一个管道

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

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 "This is the build step"
- echo "binary-data-123" > executable
- name: a-test-step
image: golang:1.16
commands:
- echo "Testing ..."
- ./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 的文件夹中,该文件夹在所有步骤中都可用。

例如,这允许第一个步骤使用您的源代码构建应用程序,而第二个步骤将接收相同的 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 部分来定义步骤何时应该执行。

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

现在您对如何创建管道有了基本了解,您可以深入了解工作流语法插件