You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Jenkins API在NodeA上检查NodeB的文件路径是否存在?

可以通过Jenkins API实现该需求

核心逻辑

通过Jenkins的远程脚本执行API,让NodeA向Jenkins服务器发送请求,触发NodeB执行目录检查的Groovy脚本,NodeA解析返回结果即可得到布尔值。

具体实现步骤

  1. 准备认证信息
    在NodeA上配置好Jenkins的访问地址、有权限的用户名和API Token(可在Jenkins用户设置页生成),通过环境变量传递更便捷:

    export JENKINS_URL="http://your-jenkins-server:8080"
    export JENKINS_USER="your-username"
    export JENKINS_TOKEN="your-api-token"
    export NODEB_NAME="NodeB"
    export TARGET_DIR="/path/to/check/on/nodeb" # Windows节点换成类似C:\\target\\dir的格式
    
  2. NodeA调用API触发NodeB检查目录
    在NodeA上执行curl命令调用Jenkins远程脚本API,让NodeB直接执行目录存在性检查:

    CHECK_RESULT=$(curl -s -u ${JENKINS_USER}:${JENKINS_TOKEN} \
    -X POST "${JENKINS_URL}/computer/${NODEB_NAME}/scriptText" \
    --data-urlencode "script=new File('${TARGET_DIR}').exists().toString()")
    
  3. 判断结果
    直接通过CHECK_RESULT变量的值返回对应状态:

    if [ "${CHECK_RESULT}" = "true" ]; then
        echo "true"
        exit 0
    else
        echo "false"
        exit 1
    fi
    

关键注意点

  • 确保目标节点NodeB处于在线状态,否则API请求会直接失败。
  • 执行请求的Jenkins用户需要拥有在远程节点上运行脚本的权限(对应权限项:Run scripts on remote nodes)。
  • Windows节点的路径需要转义,比如Groovy脚本里的路径要写成'C:\\test\\dir',避免转义字符失效。

内容的提问来源于stack exchange,提问作者Yung Driller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:31:13