如何修改Jenkins Pipeline默认工作区:从Master切换至Slave节点
如何把Pipeline Script from SCM的代码克隆到Windows Slave工作区
其实你完全不需要额外插件就能实现这个需求,核心是通过Pipeline的节点指定逻辑,就能控制代码克隆的目标位置。下面给你两种实用的实现方式:
方式一:让整个Pipeline都在Windows Slave上运行
如果你的整个构建流程都需要在Windows环境下执行,直接在Jenkinsfile开头指定运行节点为你的Windows Slave即可——这样Git仓库会自动克隆到该Slave的工作区:
pipeline { agent { label 'windows-slave' // 替换成你的Windows Slave对应的标签名 } stages { stage('Checkout Code') { steps { checkout scm // 这一步会直接把代码克隆到Windows Slave的工作区 } } stage('Build & Test') { steps { // 这里写你在Windows环境下的构建/测试命令,比如`msbuild MyProject.sln` } } } }
方式二:仅让代码克隆阶段在Windows Slave执行
如果你的Pipeline里有部分步骤需要在Master(Unix)上运行,只希望代码克隆到Windows Slave,可以给特定阶段单独指定agent:
pipeline { agent none // 全局不设置默认节点 stages { stage('Clone Code on Windows Slave') { agent { label 'windows-slave' } steps { checkout scm // 代码会被克隆到Windows Slave的工作区 // 如果后续Master阶段需要用到这份代码,可以先归档 stash includes: '**/*', name: 'project-source' } } stage('Run Tasks on Master') { agent { label 'master' } steps { unstash 'project-source' // 把Slave上的代码拉到Master工作区 // 这里写Master上需要执行的命令 } } } }
额外提示
当你使用"Pipeline Script from SCM"时,Jenkins的默认逻辑是在当前Pipeline运行的节点上克隆代码——如果没指定agent,默认会用Master。所以只要你明确指定了agent为Windows Slave,克隆操作就会自动转到该Slave的工作区,完全不需要额外插件。
另外别忘了确认你的Windows Slave已经正确配置了Git环境(安装Git并添加到系统PATH),这样checkout scm才能正常完成克隆。
内容的提问来源于stack exchange,提问作者Aravind
相关产品推荐
相关产品推荐

