Найти артефакты в действиях после сборки - PullRequest
0 голосов
/ 24 февраля 2020

В двух словах:

Как получить доступ к расположению произведенных артефактов в сценарии оболочки, запущенном в процессе сборки или после сборки?

Более длинная история:

Я пытаюсь настроить работу jenkins для автоматизации сборки и распространения пакетов debian. До сих пор я успешно использовал плагин debian-pbuilder для выполнения процесса сборки, так что jenkins представляет окончательные артефакты после успешного завершения задания:

mypackage_1+020200224114528.NOREV.4_all.deb
mypackage_1+020200224114528.NOREV.4_amd64.buildinfo
mypackage_1+020200224114528.NOREV.4_amd64.changes
mypackage_1+020200224114528.NOREV.4.dsc
mypackage_1+020200224114528.NOREV.4.tar.xz

Теперь я Я хотел бы также автоматизировать процесс развертывания в локальном репозитории РепроПро, который на самом деле просто потребовал бы простого вызова сценария оболочки, который я собрал.

Моя проблема: я не нашел способа определить местоположение артефакта для этот сценарий развертывания для работы. Плагин «debian-pbuilder» генерирует артефакты во временном каталоге ($ WORKSPACE / binaries.tmp15567690749093469649), который изменяется при каждой сборке.

Поскольку артефакты правильно отображаются в представлении состояния готовой работы, я бы ожидать, что детали артефакта будут предоставлены сценарию (например, переменными среды). Но это явно не тот случай. Я уже активно искал решение, но не нашел ничего полезного. Или это я (все еще в некотором роде ладья ie в Дженкинсе), следуя ненадлежащему подходу здесь?

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете использовать archiveArtifacts . У вас есть каталог binaries.tmp в рабочей области, и вы можете использовать его, но перед выполнением очистки рабочего пространства с помощью deleteDir().

Пример конвейера:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                deleteDir()
                ...
            }
        }
    }

    post {
        always {
            archiveArtifacts artifacts: 'binaries*/**', fingerprint: true
        }
    }
}

Вы также можете проверить https://plugins.jenkins.io/copyartifact/

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