- 工作流程
工作流程
流水线至少有一个工作流程.一个工作流是一组按顺序执行的步骤,使用同一个工作区,该工作区是一个共享文件夹,包含存储库和所有先前步骤生成的数据.
如果在.woodpecker.yml中只有一个配置 悟空平台将创建一个只有一个工作流的流水线.
将配置放置在一个名为默认文件夹 .woodpecker/ 的文件夹中,悟空平台将创建一个有多个工作流的流水线,每个工作流均以定义它们的文件的名称命名.仅使用 .yml 和 .yaml 文件,任何子文件夹中的文件都将被忽略,例如 .woodpecker/sub-folder/test.yml.
您还可以在项目设置中设置一些自定义路径,例如 .my-ci/pipelines/ 而不是 .woodpecker/.
使用工作流的好处
- 更快的 lint/test 反馈,工作流不必完全运行即可将 lint 状态推送到远程
- 通过使用一个工作流管理一个流水线中的各种关注点,如测试、linting、构建和部署,来进行更好的组织
- 利用更多的代理加快整个流水线的执行速度
样例工作流定义
请注意,文件仅在同一工作流程的步骤之间共享(请参见文件更改是增量的).这意味着您无法在部署工作流中访问构建工作流程中的工件.如果仍然需要在工作流程之间传递工件,则需要使用某些存储插件(例如将文件存储在 Amazon S3 存储桶中的插件).:::
.woodpecker/
├── .build.yml
├── .deploy.yml
├── .lint.yml
└── .test.yml
.woodpecker/.build.yml
pipeline:
build:
image: debian:stable-slim
commands:
- echo building
- sleep 5
.woodpecker/.deploy.yml
pipeline:
deploy:
image: debian:stable-slim
commands:
- echo deploying
depends_on:
- lint
- build
- test
.woodpecker/.test.yml
pipeline:
test:
image: debian:stable-slim
commands:
- echo testing
- sleep 5
depends_on:
- build
.woodpecker/.lint.yml
pipeline:
lint:
image: debian:stable-slim
commands:
- echo linting
- sleep 5
状态行
每个工作流将向您的锻造厂报告自己的状态.
流程控制
工作流在不同的代理上并行运行,彼此不共享.
可以使用depends_on元素设置工作流之间的依赖关系.只有在所有依赖项成功完成后,工作流才会执行.
depends_on条目的名称是没有路径、前导点和文件扩展名.yml或.yaml的文件名.例如,如果项目配置使用.woodpecker/作为CI文件的路径,并且有一个名为.woodpecker/.lint.yml的文件,则相应的depends_on条目将是lint.
pipeline:
deploy:
image: debian:stable-slim
commands:
- echo deploying
+depends_on:
+ - lint
+ - build
+ - test
需要在失败情况下运行的工作流应设置runs_on标签.
pipeline:
notify:
image: debian:stable-slim
commands:
- echo notifying
depends_on:
- deploy
+runs_on: [ success, failure ]
有些工作流程不需要源代码,比如在失败时创建通知.请阅读有关 pipeline 语法中 skip_clone 的更多信息.