run 命令
pipeline run 命令用于在本地直接运行 Pipeline。这是 Pipeline 最常用的命令,支持从本地文件或远程 URL 加载配置,并执行 Pipeline 工作流。
基本用法
bash
pipeline run [选项]命令选项
-c, --config
指定 Pipeline 配置文件路径。
- 类型: 字符串
- 环境变量:
PIPELINE_CONFIG - 默认值: 自动查找(
.pipeline.yaml或.go-idp/pipeline.yaml) - 支持格式:
- 本地文件路径:
pipeline.yaml - HTTP/HTTPS URL:
https://example.com/pipeline.yaml
- 本地文件路径:
示例:
bash
# 使用本地配置文件
pipeline run -c pipeline.yaml
# 使用远程配置文件
pipeline run -c https://example.com/pipeline.yaml
# 使用环境变量
export PIPELINE_CONFIG=pipeline.yaml
pipeline run-w, --workdir
指定 Pipeline 的工作目录。
- 类型: 字符串
- 环境变量:
PIPELINE_WORKDIR - 默认值: 当前目录
示例:
bash
pipeline run -w /tmp/my-pipeline-i, --image
指定默认的 Docker 镜像。
- 类型: 字符串
- 环境变量:
PIPELINE_IMAGE - 说明: 如果 Pipeline 配置中没有指定
image,将使用此值
示例:
bash
pipeline run -i alpine:latest-e, --env
设置环境变量(可多次使用)。
- 类型: 字符串切片
- 环境变量:
ENV - 格式:
KEY=VALUE
示例:
bash
pipeline run -e GITHUB_TOKEN=xxx -e BUILD_NUMBER=123--allow-env
允许传递指定的环境变量到 Pipeline(可多次使用)。
- 类型: 字符串切片
- 环境变量:
ALLOW_ENV - 说明: 从当前 shell 环境中选择性地传递环境变量
示例:
bash
# 允许传递 GITHUB_TOKEN 和 CI 相关的环境变量
pipeline run --allow-env GITHUB_TOKEN --allow-env CI_BUILD_NUMBER--allow-all-env
允许传递所有环境变量到 Pipeline。
- 类型: 布尔值
- 环境变量:
ALLOW_ALL_ENV - 说明: 将当前 shell 的所有环境变量传递给 Pipeline
示例:
bash
pipeline run --allow-all-env配置文件查找
如果不指定 -c 选项,pipeline run 会自动查找配置文件,按以下顺序:
.pipeline.yaml(当前目录).go-idp/pipeline.yaml(当前目录)
如果找到配置文件,将自动使用;否则会报错。
使用示例
示例 1: 基本使用
bash
# 创建配置文件
cat > .pipeline.yaml <<EOF
name: Hello Pipeline
stages:
- name: greet
jobs:
- name: say-hello
steps:
- name: hello
command: echo "Hello, World!"
EOF
# 运行 Pipeline
pipeline run示例 2: 使用远程配置
bash
# 从远程 URL 加载配置
pipeline run -c https://raw.githubusercontent.com/example/pipeline/main/pipeline.yaml示例 3: 设置工作目录和环境变量
bash
pipeline run \
-c pipeline.yaml \
-w /tmp/my-pipeline \
-e BUILD_NUMBER=123 \
-e GITHUB_TOKEN=xxx示例 4: 传递环境变量
bash
# 只传递特定的环境变量
export GITHUB_TOKEN=xxx
export CI_BUILD_NUMBER=123
pipeline run --allow-env GITHUB_TOKEN --allow-env CI_BUILD_NUMBER
# 传递所有环境变量
pipeline run --allow-all-env示例 5: 使用自定义 Docker 镜像
bash
pipeline run -c pipeline.yaml -i node:16-alpine执行流程
- 加载配置: 从本地文件或远程 URL 加载 Pipeline 配置
- 解析配置: 解析 YAML 配置并验证
- 应用选项: 应用命令行选项(workdir、image、环境变量等)
- 执行 Pipeline: 按顺序执行各个 Stage
- 清理: 成功时清理 workdir,失败时保留 workdir 以便调试
错误处理
当 Pipeline 执行失败时:
- workdir 保留: 失败的 workdir 会被保留,方便调试
- 错误日志: 输出详细的错误信息,包括 workdir 位置
- 状态信息: 在 Pipeline State 中记录错误信息
详细错误处理说明请参考 错误处理文档。
环境变量
可以通过环境变量设置命令选项:
bash
export PIPELINE_CONFIG=pipeline.yaml
export PIPELINE_WORKDIR=/tmp/pipeline
export PIPELINE_IMAGE=alpine:latest
pipeline run调试模式
启用调试模式可以查看详细的执行信息:
bash
DEBUG=1 pipeline run -c pipeline.yaml调试模式下会:
- 显示 Pipeline 配置的 JSON 格式
- 保留临时下载的远程配置文件
- 输出更详细的日志信息
常见问题
Q: 如何指定配置文件?
A: 使用 -c 选项指定配置文件路径,或将其放在当前目录并命名为 .pipeline.yaml。
Q: 如何传递敏感信息(如密码)?
A: 使用 -e 选项传递环境变量,避免在配置文件中硬编码敏感信息。
Q: 远程配置文件会被缓存吗?
A: 不会。每次运行都会重新下载远程配置文件。调试模式下会保留临时文件。
Q: 如何查看 Pipeline 的执行日志?
A: Pipeline 的执行日志会输出到标准输出。如果失败,可以查看 workdir 中的详细日志文件。
Q: 如何设置超时时间?
A: 在 Pipeline 配置文件中设置 timeout 字段(单位:秒)。
