
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Plugin Compatibility Tester (PCT) 是一个用于生成 Jenkins 插件与 Jenkins 核心版本兼容性矩阵的工具。注意:该镜像已不再发布,仅作历史参考用途。
适用于 Jenkins 插件开发者,在插件开发过程中测试插件与不同版本 Jenkins 核心的兼容性,验证插件在特定 Jenkins 版本下的功能正确性。
基本示例
测试指定插件与最新 Jenkins 核心
克隆插件仓库并针对最新 Jenkins 核心版本运行 PCT:
shelldocker run -ti --rm -v maven-repo:/root/.m2 -v $(pwd)/out:/pct/out -e ARTIFACT_ID=ssh-slaves -e VERSION=ssh-slaves-1.24 jenkins/pct
测试指定插件与自定义 Jenkins WAR
针对指定 Jenkins WAR 文件(支持 SNAPSHOT 构建)测试插件最新版本:
shelldocker run -ti --rm -v maven-repo:/root/.m2 -v $(pwd)/out:/pct/out -v my/jenkins.war:/pct/jenkins.war:ro -e ARTIFACT_ID=ssh-slaves jenkins/pct
测试自定义 Jenkins 和插件版本
通过卷挂载自定义 Jenkins WAR 和插件源码进行测试:
shelldocker run -ti --rm -v maven-repo:/root/.m2 -v $(pwd)/out:/pct/out -v my/jenkins.war:/pct/jenkins.war:ro -v my/plugin:/pct/plugin-src:ro jenkins/pct
测试自定义仓库分支
针对自定义 Git 仓库的特定分支运行 PCT:
shelldocker run --rm -v maven-repo:/root/.m2 -v $(pwd)/out:/pct/out -e CHECKOUT_SRC=https://github.com/oleg-nenashev/job-restrictions-plugin.git -e VERSION=JENKINS-26374 jenkins/pct
批量测试 WAR 中的多个插件
若需测试 WAR 文件(如通过 Custom War Packager 生成)中包含的多个插件,可使用以下配置避免为每个插件启动新容器:
shelldocker run -ti --rm -v maven-repo:/root/.m2 -v $(pwd)/out:/pct/out -v my/jenkins.war:/pct/jenkins.war:ro -e ARTIFACT_ID=ssh-slaves,credentials -e DO_NOT_OVERRIDE_PCT_CHECKOUT=true jenkins/pct
PCT 提供 CLI 接口支持本地手动运行:
mvn clean installPLUGIN_SRC 目录mvn clean install -DskipTests 初始化 artifactsshelljava -jar target/plugins-compat-tester-cli.jar \ --working-dir $(pwd)/tmp/work \ --include-plugins ${PLUGIN_ARTIFACT_ID} \ --war jenkins.war --local-checkout-dir ${PLUGIN_SRC} \ --mvn ${PATH_TO_MAVEN}
执行 java -jar target/plugins-compat-tester-cli.jar -help 获取完整选项列表。
注意:目前同时测试多个插件需确保插件已发布,测试 SNAPSHOT 版本需为每个插件单独执行上述步骤。
本地运行
shellmake demo TEST_JDK_HOME=${YOUR_JDK_HOME} PLUGIN_NAME=git
Docker 运行
通过 JDK_VERSION 环境变量指定 Java 版本(镜像内置 Java 17 和 11):
shellmake demo-docker JDK_VERSION=17 PLUGIN_NAME=git
完整选项可参考 https://github.com/jenkinsci/plugin-compat-tester/blob/master/Makefile%E3%80%82
| 环境变量 | 描述 |
|---|---|
ARTIFACT_ID | 待测试插件的 artifact ID。若定义 CHECKOUT_SRC 或挂载 /pct/plugin-src,镜像可自动识别该 ID |
VERSION | 待检出和测试的标签/提交/分支,默认值为 master |
CHECKOUT_SRC | 自定义 Git 克隆源(如 https://github.com/oleg-nenashev/job-restrictions-plugin.git),默认值为 https://github.com/jenkinsci/${ARTIFACT_ID}-plugin.git |
JAVA_OPTS | 传递给 PCT CLI 的 Java 选项 |
DEBUG | 布尔标志,启用远程调试模式(端口 5000) |
M2_SETTINGS_FILE | 自定义 Maven 配置文件路径(需配合卷挂载使用) |
INSTALL_BUNDLED_SNAPSHOTS | 是否将 JAR 和插件快照安装到本地仓库,默认值为 true |
SKIP_LOCAL_SNAPSHOT_INSTALLATION | 若存在,将不安装 WAR 快照(核心和插件);若不存在,将安装 WAR 快照 |
DO_NOT_OVERRIDE_PCT_CHECKOUT | 让 PCT CLI 而非 run-pct 脚本检出插件版本,确保测试所有插件 |
JDK_VERSION | Docker 运行时指定 Java 版本(支持 17 或 11) |
| 卷路径 | 描述 |
|---|---|
/pct/plugin-src | 插件源码目录,若未指定将自动检出源码 |
/pct/jenkins.war | 用于测试的 Jenkins WAR 文件 |
/pct/m2-settings.xml | 自定义 Maven 配置文件(可选)。若指定 M2_SETTINGS_FILE,则优先使用该变量指定的路径 |
/pct/out | PCT 输出目录,所有报告将存储于此 |
/pct/tmp | 临时目录,可挂载用于分析运行失败 |
/root/.m2 | Maven 仓库目录,可用于传递 settings.xml 或缓存 artifacts |
注意:若未提供 WAR 文件,PCT 镜像的入口脚本会在调用 PCT 前尝试检出插件源码。对于依赖
PreCheckoutHooks的插件(如多模块项目),标准 docker run 会因入口脚本未运行PreCheckoutHooks而失败。此时可通过以下方式解决:使用 WAR 文件、挂载插件源码、覆盖入口点手动运行 PCT 或手动运行 PCT。
如需调试 Docker 环境中的 PCT 实例,使用 -e DEBUG=true -p 5005:5005 标志,然后通过 IDE 的远程调试器连接容器:
shelldocker run --rm -v maven-repo:/root/.m2 -v $(pwd)/out:/pct/out -e ARTIFACT_ID=job-restrictions -e DEBUG=true -p 5005:5005 -i jenkins/pct
PCT 本身支持 Windows,但开发 Makefile 可能需要特殊配置。需安装 Make 和 Maven(如通过 Chocolatey 包管理器)并正确设置环境变量:
batchset JAVA_HOME=... make demo PLUGIN_NAME=artifact-manager-s3 WAR_PATH=test-wars/mywar.war MVN_EXECUTABLE="C:\ProgramData\chocolatey\bin\mvn.exe"
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务