将sh输出赋给声明性管道上的变量 [英] Assigning sh output to variable on declarative pipeline
本文介绍了将sh输出赋给声明性管道上的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将sh输出赋给具有声明性管道的变量?
def arch_prefix() {
script {
return sh(script : 'uname -m', returnStdout: true).trim()
}
}
// end - Auxiliary fuctions
pipeline {
agent none
environment {
DOCKER_IMAGE = 'test'
ARCHITECTURE = arch_prefix()
DOCKER_IMG = "${DOCKER_IMAGE}-${ARCHITECTURE}"
}
stages {
stage('Build') {
parallel {
stage('arch1') {
agent { label 'agent_a' }
steps {
echo "${DOCKER_IMG}"
}
stage('arch2') {
agent { label 'agentb' }
steps {
echo "${DOCKER_IMG}"
}
}
}
}
}
}
推荐答案
可能您正在搜索的内容如下:
pipeline {
agent {
label "docker-host"
}
environment {
LEADER_REPOSITORY_URL = "ssh://some.git_repository.url"
DOCKER_REGISTRY = "some.docker_repository.url:443"
DOCKER_IMAGE_NAME = "some-image"
}
stages {
stage('Build') {
steps {
timestamps {
script {
LATEST_VERSION = sh( script: "git ls-remote --tags ${env.LEADER_REPOSITORY_URL} 'v${env.GIT_BRANCH}*' | fgrep -v '^{}' | cut -d'/' -f3 | sort --version-sort | tail -n1 | tr -d 'v'",
returnStdout: true)
}
sh "docker build -t ${env.DOCKER_REGISTRY}/${env.DOCKER_IMAGE_NAME}:${env.GIT_BRANCH} -t ${env.DOCKER_REGISTRY}/${env.DOCKER_IMAGE_NAME}:${LATEST_VERSION} --force-rm ."
}
}
}
}
}
这篇关于将sh输出赋给声明性管道上的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文