Дженкинс трубопровод, раскошелиться от подработки - PullRequest
1 голос
/ 19 апреля 2019

У меня есть отдельный 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.

1 Ответ

0 голосов
/ 22 апреля 2019

Если вы используете archiveArtifacts, вы можете использовать copyArtifacts, чтобы дополнить его.

Насколько я знаю, stash / unstash работают только в рамках одной и той же работы, поэтому другим вариантом будет поставить отметку Preserve stashes from completed builds в конфигурации конвейера, чтобы вы могли использовать их повторно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...