Назначение вывода sh переменной в декларативном конвейере - PullRequest
0 голосов
/ 25 июня 2018

Как можно назначить вывод 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}"
                    }
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 13 сентября 2018

Может быть, вы ищете что-то вроде этого:

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 ."
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...