gpt4 book ai didi

Jenkins 管道步骤发生在 master 而不是 slave

转载 作者:行者123 更新时间:2023-12-04 13:45:25 25 4
gpt4 key购买 nike

我正在开始使用 Jenkins 管道。我的管道有一个简单的步骤,应该在不同的代理上运行 - 例如“限制可以运行此项目的位置”选项。

我的问题是它在 master 上运行。

它们都是Windows机器。

这是我的 Jenkinsfile :

pipeline {
agent {label 'myLabel'}
stages {
stage('Stage 1') {
steps {
echo pwd()
writeFile(file: 'test.txt', text: 'Hello, World!')
}
}
}
}
pwd()版画 C:\Jenkins\workspace\<pipeline-name>_<branch-name>-Q762JIVOIJUFQ7LFSVKZOY5LVEW5D3TLHZX3UDJU5FWYJSNVGV4Q .

这个文件夹在 master 上。 test.txt 的存在证实了这一点。文件。

我期待 test.txt在从代理上创建。

注 1

我可以确认管道找到代理,因为日志包含:
[Pipeline] node
Running on MyAgent in C:\Jenkins\workspace\<pipeline-name>_<branch-name>-Q762JIVOIJUFQ7LFSVKZOY5LVEW5D3TLHZX3UDJU5FWYJSNVGV4Q

但是 MyAgent 上不存在此文件夹,这似乎与问题有关。

笔记2

这个问题类似于 Jenkins pipeline not honoring agent specification ,除了我没有使用 build指令,所以我认为答案不适用。

注 3
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
echo "${env.NODE_NAME}"
}
}
stage('Stage 2') {
agent {label 'MyLabel'}
steps {
echo "${env.NODE_NAME}"
}
}
}
}

这将打印预期的输出 - masterMyAgent .如果这是正确的,那么为什么工作区位于 master 上的不同文件夹中,而不是位于 MyAgent 上?

最佳答案

这是一个例子

pipeline {
agent none

stages {
stage('Example Build') {
agent { label 'build-label' }
steps {
sh 'env'
sh ' sleep 8'
}
}
stage('Example Test') {
agent { label 'deploy-label' }
steps {
sh 'env'
sh ' sleep 5'
}
}
}
}

关于Jenkins 管道步骤发生在 master 而不是 slave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49267523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com