我碰到JENKINS-38706。由于它已经开放了一段时间,所以我正在尝试解决它。
我的问题是我正在运行多节点管道,其中一个节点是Windows从站,具有255个字符的路径限制。
因此,我尝试更改Windows从属阶段的工作区,而不是使用多分支管道使用的C:\ jenkins \ workspace \ job-branch- randomcharacters,而是尝试将其移至c:\ w \ job \ branch。
它立即失败并显示:
Branch indexing Obtained Jenkinsfile from 5bc168fcd5b3707048ad4bca4b5ef7478d759531 Running in Durability level: MAX_SURVIVABILITY [BFA] Scanning build for known causes... [BFA] No failure causes found [BFA] Done. 0s [Bitbucket] Notifying commit build result [Bitbucket] Build result notified org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 52: Too many arguments for map key "ws" @ line 52, column 15. ws('C:\\w\\$JOB_NAME\\$BRANCH_NAME') {
我的Jenkinsfile片段:
stage ('Snapshot-WINDOWS') { agent { node { label 'win' ws('C:\\w\\$JOB_NAME\\$BRANCH_NAME') { body() } } } steps { withMaven( maven: 'Maven 3.5.3', mavenSettingsConfig: 'settings' ) { bat 'mvn clean install' } } }
为了回答我自己的问题,我不需要使用ws(),而是需要使用customWorkspace,并且$ BRANCH_NAME会自动添加到多分支管道中。
stage ('Snapshot-WINDOWS') { agent { node { label 'win' customWorkspace 'C:\\w\\$JOB_NAME' } } steps { withMaven( maven: 'Maven 3.5.3', mavenSettingsConfig: 'settings' ) { bat 'mvn clean install' } } }