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

Jenkins流水线部署时shell/deploy.sh文件不存在的解决方法

问题分析

你的问题核心是Jenkins默认工作区被后续拉取的目标项目代码覆盖:流水线的SCM先拉取了包含shell脚本的脚本仓库,但Clone Code阶段拉取目标项目时,会将工作区替换为目标项目的内容,导致原脚本仓库中的shell/deploy.sh丢失。

解决办法

1. 用stash暂存脚本文件

在拉取目标项目前,先暂存脚本仓库里需要的文件,Deploy阶段再恢复:

pipeline {
    agent any
    stages {
        stage('暂存部署脚本') {
            steps {
                // 根据实际子目录选择maven或node下的脚本
                stash name: 'deploy-scripts', includes: 'maven/shell/deploy.sh'
            }
        }
        stage('拉取目标项目代码') {
            steps {
                git url: '目标项目仓库地址', branch: 'main'
            }
        }
        stage('部署') {
            steps {
                unstash 'deploy-scripts'
                // 此时脚本已恢复到当前工作区,可正常调用
                sh 'scp maven/shell/deploy.sh 目标服务器用户@服务器地址:/部署路径/'
            }
        }
    }
}

2. 指定子目录拉取目标项目

拉取目标项目时自定义目录,避免覆盖脚本仓库的内容:

pipeline {
    agent any
    stages {
        stage('拉取目标项目代码') {
            steps {
                // 将目标项目拉到target-project子目录,不影响原脚本仓库文件
                git url: '目标项目仓库地址', branch: 'main', destination: 'target-project'
            }
        }
        stage('部署') {
            steps {
                // 原脚本仓库的deploy.sh仍在初始路径下
                sh 'scp maven/shell/deploy.sh 目标服务器用户@服务器地址:/部署路径/'
            }
        }
    }
}

3. 单独拉取脚本文件(轻量方案)

如果仅需要deploy.sh,可在Deploy阶段直接从脚本仓库拉取单个文件:

pipeline {
    agent any
    stages {
        stage('拉取目标项目代码') {
            steps {
                git url: '目标项目仓库地址', branch: 'main'
            }
        }
        stage('部署') {
            steps {
                // 稀疏克隆脚本仓库,仅拉取需要的文件
                sh 'git clone --depth 1 --sparse 脚本仓库地址 temp-scripts'
                sh 'cd temp-scripts && git sparse-checkout set maven/shell/deploy.sh'
                sh 'cp temp-scripts/maven/shell/deploy.sh .'
                // 上传文件
                sh 'scp deploy.sh 目标服务器用户@服务器地址:/部署路径/'
                // 清理临时文件
                sh 'rm -rf temp-scripts'
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:03:26