王昭宁/ 高级客户经理

高级客户经理

  • 电话(微信)
    17669512663
  • QQ 号码
    3684528290

流水线语法与环境变量

作者 :Gitfox 最后编辑:孟笑宇 于 2026-10-23 17:04:55 阅读:12

GitFox 流水线语法手册


version: 1 kind: pipeline spec:  stages:  - name: build  type: ci  spec:  steps:  - name: hello  type: run  spec:  container:  image: alpine  script:  - echo hello

spec

spec 是流水线主体,包含以下字段:

字段 类型 说明
inputs map 声明输入参数
options object 流水线级选项
stages array 阶段列表,

spec.inputs

声明输入参数,可在表达式中通过 ${{ parameters.<名称> }} 引用。


stage

通用字段

字段 类型 说明
name string 阶段名称,同一流水线内唯一
id string 阶段标识;省略时根据 name/type 自动生成
spec object 类型相关配置

stage spec

当 type: ci 时,spec 支持:

字段 类型 说明
steps array 步骤列表,
envs map 阶段级环境变量
platform object 运行平台,支持 os、arch
runtime object 运行器选择,见下
volumes array 声明卷,供步骤通过 mount 挂载

runtime:type 为 default(默认)或 agent。使用 agent 时通过 spec.selector 指定调度标签。

runtime:  type: agent  spec:  selector:  os: linux  arch: amd64

platform:

platform:  os: linux  arch: amd64

step

通用字段

字段 类型 说明
name string 步骤名称
id string 步骤标识;省略时根据 name/type 自动生成
type string 步骤类型:run、script、plugin、background
spec object 类型相关配置

所有步骤都在工作目录 /gitfox 中执行(background 除外,见下)。


step 类型

run

最常用的步骤类型,在容器中执行一段 shell 脚本。

字段 类型 说明
container string 或 object 容器定义,见 ,
script string 或 []string 要执行的 shell 命令
privileged bool 是否以特权模式运行

脚本始终由 /bin/sh 执行。

- name: test  type: run  spec:  container:  image: golang:1.24  pull: always  script:  - go vet ./...  - go test ./...


plugin

引用平台中已注册的插件,并传入输入参数。插件在编译前会被展开为其内部的步骤。

字段 类型 说明
name string 插件名称
uses string 插件名称,优先于 name
inputs map 插件输入参数

内置插件:

插件名称 说明 主要 inputs
scm_git_clone Git 克隆 repository、gitRef、cloneDepth、cloneDir
build_go Go 编译 goVersion、workspace、compileCommand
build_maven Maven 编译 jdkVersion、workspace、customCommand
build_gradle Gradle 编译 workspace、compileCommand
build_nodejs NodeJS 编译 nodeVersion、workspace、compileCommand
- name: build  type: plugin  spec:  name: build_go  inputs:  goVersion: "1.24"  compileCommand: go build -o bin/app .

container

run 步骤的 container 字段,既可以是镜像字符串,也可以是对象。

字段 类型 说明
image string 容器镜像
pull string 镜像拉取策略:default、always、if-not-exists、never
container:  image: hub.example.com/library/golang:1.24  pull: always

简写形式:

container: hub.example.com/library/golang:1.24

变量与表达式

流水线中可以使用三种语法:

语法 求值时机 说明
${{ 表达式 }} 构建期(容器启动前) 由流水线引擎求值并写入 YAML

${{ }} 表达式

${{ }} 中可以使用:

表达式 说明
parameters.<名称> 读取输入/流水线参数
- name: login  type: run  spec:  container:  image: docker:24  script:  - docker login -u ${{ parameters.username }} -p ${{ parameters.password}} hub.example.com

内置环境变量

流水线步骤中可以使用以下由平台注入的环境变量。

系统信息

变量 说明
GITFOX_SYSTEM_PROTO 平台协议(http/https)
GITFOX_SYSTEM_HOST 平台主机
GITFOX_SYSTEM_HOSTNAME 平台主机名
GITFOX_SYSTEM_VERSION 平台版本

构建信息

变量 说明
GITFOX_BRANCH 目标分支
GITFOX_SOURCE_BRANCH 源分支
GITFOX_TARGET_BRANCH 目标分支
GITFOX_COMMIT / GITFOX_COMMIT_SHA / GITFOX_COMMIT_AFTER 当前提交 SHA
GITFOX_COMMIT_BEFORE 变更前提交 SHA
GITFOX_COMMIT_REF 提交引用
GITFOX_COMMIT_BRANCH 提交所属分支
GITFOX_COMMIT_LINK 提交链接
GITFOX_COMMIT_MESSAGE 提交信息
GITFOX_COMMIT_AUTHOR 提交作者账号
GITFOX_COMMIT_AUTHOR_NAME 提交作者名称
GITFOX_COMMIT_AUTHOR_EMAIL 提交作者邮箱
GITFOX_COMMIT_AUTHOR_AVATAR 提交作者头像
GITFOX_BUILD_NUMBER 构建序号
GITFOX_BUILD_PARENT 父构建序号
GITFOX_BUILD_EVENT 触发事件
GITFOX_BUILD_ACTION 触发动作
GITFOX_BUILD_STATUS 构建状态(失败时为 failure)
GITFOX_BUILD_DEBUG 是否调试模式
GITFOX_BUILD_CREATED / GITFOX_BUILD_STARTED / GITFOX_BUILD_FINISHED 创建/开始/结束时间戳
GITFOX_BUILD_TRIGGER 触发者
GITFOX_DEPLOY_TO / GITFOX_DEPLOY_ID 部署目标/部署 ID
GITFOX_FAILED_STAGES 失败的 stage 列表(构建失败时)

Pull Request 事件额外提供:

变量 说明
GITFOX_PULL_REQUEST Pull Request 编号
GITFOX_PULL_REQUEST_TITLE Pull Request 标题

Tag 事件额外提供:

变量 说明
GITFOX_TAG Tag 名称

Stage 信息

变量 说明
GITFOX_STAGE_NAME 阶段名称
GITFOX_STAGE_NUMBER 阶段序号
GITFOX_STAGE_TYPE 阶段类型
GITFOX_STAGE_KIND 阶段种类
GITFOX_STAGE_MACHINE 执行机器
GITFOX_STAGE_OS / GITFOX_STAGE_ARCH / GITFOX_STAGE_VARIANT / GITFOX_STAGE_VERSION 阶段平台信息
GITFOX_STAGE_STATUS 阶段状态(失败时为 failure)
GITFOX_STAGE_STARTED / GITFOX_STAGE_FINISHED 阶段开始/结束时间戳
GITFOX_STAGE_DEPENDS_ON 依赖的阶段
GITFOX_CARD_PATH 卡片输出路径,固定为 /dev/stdout
GITFOX_FAILED_STEPS 失败的步骤列表(阶段失败时)

Step 信息

变量 说明
GITFOX_STEP_NAME 步骤名称
GITFOX_STEP_NUMBER 步骤序号

工作区与运行器

变量 说明
GITFOX_WORKSPACE 工作区根目录,固定为 /gitfox
GITFOX_WORKSPACE_BASE 工作区基础目录
GITFOX_WORKSPACE_PATH 工作区相对路径
GITFOX_CUSTOM_ENV 自定义环境变量文件路径,见
GITFOX_EXECUTION_ID 执行 ID
GITFOX_STAGE_ID 阶段 ID
GITFOX_DOCKER_NETWORK_ID 阶段 Docker 网络 ID
GITFOX_DOCKER_VOLUME_ID / GITFOX_DOCKER_VOLUME_PATH 工作区卷 ID / 宿主机路径



Site-Footer
王昭宁 高级客户经理
  • 17669512663
  • 3684528290