ich viele Projekte in verschiedenen Repositories, die die gleichen grundlegenden CI-Workflow zu teilen, die ich als deklarative Pipeline leicht ausdrücken können:Wie eine deklarative Pipeline in vielen Projekten teilen
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '20'))
}
stages {
stage('CI') {
steps {
echo 'Do CI'
}
}
stage('QA') {
steps {
echo 'Do QA'
}
}
}
post {
always {
junit allowEmptyResults: true, testResults: '**/target/surefire-reports/TEST-*.xml'
// etc...
}
failure {
echo 'Failure mail'
// etc
}
}
}
Ich mag würde die Verwendung derselben Deklarativen Pipeline für alle meine Projekte und die Möglichkeit, die Definition der Pipeline an nur einer Stelle zu ändern und die Änderungen automatisch in allen Projekten zu verwenden.
Im Wesentlichen, was ich in einem Projekt zu tun; s Jenkinsfile ist dies:
loadPipelineFromScm 'repository', 'pipeline.groovy'
Ich kann schon dies mit gemeinsam genutzten Bibliotheken, aber ich bin nicht in der Lage zu verwenden deklarative Pipeline Funktionen dann nicht mehr.
Gibt es eine Möglichkeit, eine Deklarative Pipeline über viele Repositories zu teilen?
Sind Sie sicher, dass eine deklarative Pipeline nicht in einer gemeinsam genutzten Bibliothek arbeiten kann? Die Dokumentation [Deklarative Pipeline: Benachrichtigungen und freigegebene Bibliotheken] (https://jenkins.io/blog/2017/02/15/declarative-notifications/) scheint genau das zu tun. Könntest du etwas ähnliches nicht tun? – herm