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

Jenkins触发PR构建时尝试删除PHP项目的CI配置问题求助

解决Jenkins构建PR时尝试删除PHP项目的问题

这问题我在维护PHP REST API项目的Jenkins流水线时也碰到过,大概率是工作区清理策略或Git插件的行为冲突导致的,给你几个实用的排查和解决方向:

1. 检查工作区自动清理配置

首先排查最常见的原因:Jenkins是否开启了全工作区清理的选项

  • 进入你的Jenkins任务配置,找到Build Environment板块,看看是否勾选了Delete workspace before build starts。如果勾选了,这个选项会直接清空整个工作区,包括你关联的PHP项目目录。
    • 解决方案:要么取消该选项,要么使用Jenkins的Clean up插件配置自定义清理规则,明确排除你的PHP项目目录(比如添加!**/your-php-project/**这样的规则)。
  • 另外检查Git插件的清理设置:在Source Code Management的Git配置里,找到Additional Behaviors,看看是否添加了Wipe out repository & force clone。这个选项会强制清空仓库目录并重新克隆,同样会误删子目录外的项目文件,不需要的话直接移除即可。

2. 确认「Checkout to a sub-directory」的路径配置

确保你设置的检出路径是正确的,避免Jenkins误识别目录范围:

  • 进入Git插件的Additional Behaviors,找到Checkout to a sub-directory,确认填写的路径是相对Jenkins工作区的子目录(比如./api-checkout),而不是指向你的PHP项目的实际路径。如果路径写错成了PHP项目的根目录,Jenkins会把这个目录当作仓库的一部分,构建时尝试清理。

3. 用流水线目录隔离避免冲突(如果使用Pipeline)

如果你的Jenkins任务是用Jenkinsfile编写的,建议通过dir()块严格限定代码检出和构建的目录范围,避免影响工作区里的其他项目文件:

pipeline {
    agent any
    stages {
        stage('Checkout PR Code') {
            steps {
                // 限定在指定子目录检出PR代码
                dir('pr-checkout') {
                    git url: 'your-git-repo-url', branch: '${CHANGE_BRANCH}'
                }
            }
        }
        stage('Build & Test') {
            steps {
                // 在检出目录内执行构建命令,不触碰外部PHP项目
                dir('pr-checkout') {
                    sh 'composer install'
                    sh './phpunit'
                }
                // 如果需要和外部PHP项目交互,直接引用绝对路径即可
                sh 'cp pr-checkout/config.php /path/to/your-php-project/config/'
            }
        }
    }
    post {
        always {
            // 只清理检出的PR目录,不影响其他项目
            deleteDir(dir: 'pr-checkout')
        }
    }
}

4. 确认PHP项目的目录位置

如果你的PHP项目不在Jenkins任务的默认工作区内,不要用「Checkout to a sub-directory」来关联它。正确的做法是:

  • 在构建步骤中直接引用PHP项目的绝对路径(比如/var/www/your-php-api)进行操作;
  • 或者将PHP项目目录设置为Jenkins任务的工作区根目录,然后把PR代码检出到工作区的子目录里,这样清理时只会影响子目录,不会删除主项目文件。

先从工作区清理配置开始排查,这是最容易踩坑的点,应该能解决大部分问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:55:15