gpt4 book ai didi

jenkins - 在同一 Jenkins 项目的后期重用工件

转载 作者:行者123 更新时间:2023-12-02 10:38:15 24 4
gpt4 key购买 nike

我有一个 Jenkins 管道,其构建步骤有一个 archiveArtifacts 命令。

构建步骤之后是单元测试、集成测试和部署。

在部署步骤中,我想使用其中一个工件。我以为我可以在构建步骤生成它的同一位置找到它,但显然 archiveArtifacts 已删除它们。

作为一种解决方法,我可以在存档之前复制工件,但它对我来说看起来并不优雅。有没有更好的办法?

最佳答案

据我了解,archiveArtifacts 更多的是用于在构建完成后保存工件以供某些人(或某人)使用。我建议考虑使用“stash”和“unstash”在阶段或节点之间传输文件。

你走吧...

stash include: 'globdescribingfiles', name: 'stashnameusedlatertounstash'

当您稍后想要检索该工件时...

unstash 'stashnameusedlatertounstash'

隐藏的文件将被放入当前工作目录中。

这是 Jenkinsfile 文档 ( https://jenkins.io/doc/book/pipeline/jenkinsfile/#using-multiple-agents ) 中给出的示例:

pipeline {
agent none
stages {
stage('Build') {
agent any
steps {
checkout scm
sh 'make'
stash includes: '**/target/*.jar', name: 'app'
}
}
stage('Test on Linux') {
agent {
label 'linux'
}
steps {
unstash 'app'
sh 'make check'
}
post {
always {
junit '**/target/*.xml'
}
}
}
stage('Test on Windows') {
agent {
label 'windows'
}
steps {
unstash 'app'
bat 'make check'
}
post {
always {
junit '**/target/*.xml'
}
}
}
}
}

关于jenkins - 在同一 Jenkins 项目的后期重用工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43916408/

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