У меня есть отдельный build
конвейер, который использует jenkinsfile
для построения кода.Я запускаю его из deploy
конвейера и хочу получить результаты сборки.
Причина в том, что разработчики могут определять этапы сборки, но развертывание находится вне контроля.
Вот примеркод в jenkins job builder
:
- job:
name: Build and Deploy
project-type: pipeline
dsl: |
node {
stage('Build') {
# that job does stash inside a jenkinsfile
build job: "Build"
sh 'cp -rv "../Build/dist/" ./' # this is a workaround
stash includes: 'dist/*.zip', name: 'archive'
}
stage('Deploy') {
unstash 'archive'
sh "..."
}
}
Итак, как я могу unstash
кодировать stash
-ед в под-задании?
PS: также есть обходной путь с артефактами:
В подзадаче:
archiveArtifacts artifacts: '*.zip', fingerprint: true
основной DSL:
dsl: |
node {
def build_job_number = 0
def JENKINS = "http://127.0.0.1:8080"
stage('Build') {
def build_job = build job: "Build"
build_job_number = build_job.getNumber()
}
stage('Deploy') {
sh "wget -c --http-user=${USER} --http-password=${TOKEN} --auth-no-challenge ${JENKINS}/job/Build/${build_job_number}/artifact/name.zip"
sh "..."
}
}
Проблема заключается в том, что требуется маркер API.