
Build Clerk 是一款用于响应构建管道事件的工具,旨在通过自定义规则自动执行操作(如回滚提交、锁定分支、触发重建等),维护主分支的稳定性。它支持多种构建事件和第三方集成(如 Jenkins、Bitbucket、Slack),并提供强大的 DSL(领域特定语言)来自定义响应逻辑。
buildFailed、branchStartsFailing、buildPassed、branchStartsPassing、repository、pullRequestMerged 等多种构建事件。使用 Docker 运行 Build Clerk:
bashdocker run --rm -it -p9090:9090 outofcoffee/build-clerk
访问 http://localhost:9090 确认服务运行。
基本配置
RULES_FILE(必填):响应构建生命周期事件的规则文件路径。Slack 配置
SLACK_USER_TOKEN:具有 chat.write 权限的 Slack 用户令牌。Jenkins 配置
JENKINS_BASE_URL:Jenkins 服务器基础 URL。JENKINS_USERNAME:Jenkins 用户名。JENKINS_PASSWORD:Jenkins API 密钥或密码。Bitbucket 配置
BITBUCKET_REPO_USERNAME:Bitbucket 仓库用户(或组织)名。BITBUCKET_REPO_SLUG:Bitbucket 仓库的 "repo slug" 名称。BITBUCKET_AUTH_USERNAME:Bitbucket 认证用户名(若与仓库用户名不同)。BITBUCKET_PASSWORD:Bitbucket 认证密码(建议使用 "应用密码")。全局过滤器
FILTER_BRANCHES:仅处理指定 SCM 分支的事件。FILTER_REPOS:仅处理指定仓库的事件(仅适用于拉取请求)。安全配置
AUTH_CONFIG_FILE:用于 HTTP Basic 认证的 Shiro 属性文件路径(参考 Shiro 文档)。高级配置
SERVER_PORT:HTTP 监听端口。bashSTORE_IMPL=mongo MONGO_HOST=localhost # MongoDB 主机地址 MONGO_PORT=27017 # MongoDB 端口
为分析源代码提交,Clerk 需访问 Git 仓库(本地克隆或远程仓库):
GIT_REPO_LOCAL_DIR:本地仓库克隆路径。GIT_REPO_REMOTE_URL:远程仓库 URL。GIT_REPO_USERNAME:HTTP(S) 远程仓库认证用户名。GIT_REPO_PASSWORD:HTTP(S) 远程仓库认证密码(或 SSH URL 的可选密码,若未使用公钥)。使用 revertCommit 操作时,需设置:
GIT_REPO_PUSH_CHANGES(默认:false):是否将更改推送到远程仓库(false 时仅本地修改,适用于测试)。Git 认证说明
Clerk 暴露以下端点接收事件:
Jenkins
Jenkins 构建报告(通过 Notification Plugin 或 Clerk Plugin 发送)应指向:
/builds
示例:https://clerk.example.com/builds
Slack
Slack 交互式消息回调应指向:
/actions
示例:https://clerk.example.com/actions
Bitbucket
Bitbucket "Pull request merged" 事件的 Webhook 应指向:
/pull-requests/merged
示例:https://clerk.example.com/pull-requests/merged
建议为端点配置认证,防止未授权访问。可使用 Clerk 内置的 HTTP Basic Auth:
AUTH_CONFIG_FILE 指向 Shiro 属性文件(示例见 backend/examples/clerk-auth.properties)。https://someuser:secretpass@clerk.example.com/actions
通过 DSL 定义事件响应逻辑,例如:
groovyif (failuresForCommitOnBranch <= 2) { rebuildBranch() // 触发分支重建 } else { revertCommit() // 回滚提交 lockBranch() // 锁定分支 } publishAnalysis("general") // 发布分析报告
更多示例见 parser 模块测试或官方文档。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务