
buildkite/plugin-linterBuildkite Plugin Linter 是一款针对 Buildkite 插件的自动化检查工具(Linter),旨在帮助开发者验证插件的结构规范性、语法正确性及最佳实践遵循情况,确保插件符合 Buildkite 平台的集成标准和质量要求。
plugin.yml)结构与语法plugin.yml、hooks/ 脚本)的语法正确性通过 docker run 命令直接运行,需挂载插件代码目录到容器内,并指定检查路径:
bashdocker run --rm -v $(pwd):/plugin buildkite-plugins/buildkite-plugin-linter \ --plugin-dir /plugin \ --format text
参数说明:
-v $(pwd):/plugin:挂载本地插件代码目录到容器内 /plugin 路径(需替换 $(pwd) 为实际插件目录)--plugin-dir /plugin:指定容器内插件代码路径(与挂载路径对应)--format text:设置输出格式为文本(默认值)创建 docker-compose.yml 简化本地检查流程:
yamlversion: '3.8' services: linter: image: buildkite-plugins/buildkite-plugin-linter volumes: - ./:/plugin # 挂载本地插件目录到容器内 /plugin command: ["--plugin-dir", "/plugin", "--format", "json"] environment: - BUILDKITE_STRICT_MODE=true # 启用严格模式(不符合规则时返回非零 exit code)
运行检查:
bashdocker-compose run --rm linter
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
--plugin-dir | 路径 | 指定插件代码根目录(容器内路径,需与挂载路径对应) | /plugin |
--format | 字符串 | 输出格式,支持 text(文本,带颜色)、json(结构化)、quiet(仅错误) | text |
--ignore-rules | 字符串 | 忽略指定规则(逗号分隔,如 missing-description,legacy-syntax) | 无 |
--strict | 布尔值 | 严格模式:非致命错误也返回非零 exit code(用于 CI 阻断) | false |
--version-check | 布尔值 | 验证插件声明的支持版本与 Buildkite 平台兼容性 | true |
| 环境变量名 | 描述 | 对应命令行参数 |
|---|---|---|
BUILDKITE_PLUGIN_LINTER_DIR | 插件目录(优先级低于 --plugin-dir) | --plugin-dir |
BUILDKITE_LINTER_FORMAT | 输出格式(优先级低于 --format) | --format |
BUILDKITE_LINTER_IGNORE_RULES | 忽略规则(优先级低于 --ignore-rules) | --ignore-rules |
BUILDKITE_STRICT_MODE | 启用严格模式(优先级低于 --strict) | --strict |
检查当前目录下的插件代码,输出文本格式结果:
bashdocker run --rm -v $(pwd):/plugin buildkite-plugins/buildkite-plugin-linter \ --plugin-dir /plugin \ --format text
输出示例(文本格式):
[INFO] 检查插件目录: /plugin [PASS] plugin.yml 语法验证通过 [WARN] 插件描述缺失(建议添加 `description` 字段) [PASS] 版本兼容性验证通过 [ERROR] hooks/post-command.sh 存在未引用的环境变量 $SECRET_TOKEN(建议使用 `plugin.config` 传递)
在 GitHub Actions 中集成,作为 PR 检查步骤:
yaml# .github/workflows/lint-plugin.yml name: Lint Buildkite Plugin on: [pull_request] jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Run Buildkite Plugin Linter run: | docker run --rm -v $(pwd):/plugin buildkite-plugins/buildkite-plugin-linter \ --plugin-dir /plugin \ --strict \ --format json
plugin.yml、hooks/ 等),否则可能导致检查失败.plugin-linter.yml)扩展,具体格式见官方文档

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务