Развертывание Milestone-Artifacts с использованием плагина Artifactory-Jenkins
У нас есть конвейер Jenkins с этапом релиза, очень похожим на этот
stage ('Artifactory Release') {
def server = Artifactory.server 'artifactoryServer'
def rtMaven = Artifactory.newMavenBuild()
def buildInfo = Artifactory.newBuildInfo()
rtMaven.tool = "Maven 3.3.9"
rtMaven.deployer releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local', server: server
rtMaven.resolver releaseRepo: 'libs-release', snapshotRepo: 'libs-snapshot', server: server
def relDescriptor = Artifactory.mavenDescriptor()
relDescriptor.version = releaseVersion
relDescriptor.failOnSnapshot = true
relDescriptor.transform()
rtMaven.run pom: 'pom.xml', goals: 'clean install -P release', buildInfo: buildInfo
}
}
Он заменяет все версии SNAPSHOT на releaseVersion и выполняет проверку зависимостей SNAPSHOT перед созданием и развертыванием артефактов в репозитории выпуска артефакта. Все идет нормально.
Теперь у нас есть ночные вехи, то есть мы создаем веху для каждого артефакта (1.2.3-Myyyymmdd) и выполняем проверку зависимостей моментального снимка.
При вышеупомянутом подходе эти вехи будут развернуты в репозитории релизов, но мы не хотим этого, тем более что эти артефакты вехи устаревают через пару дней или недель и размер хранилища артефактов будет слишком быстро расти.
Итак, что будет лучшим подходом для достижения вех в этом выпуске?
- Есть ли способ заставить плагин артефактов использовать хранилище снимков вместо репозитория релизов?
- использовать другой репозиторий "release" и стадию от вехи до репозитория prod?
- Есть ли способ определить политику хранения в репозитории выпусков для конкретных (= вехой) артефактов?
- другие идеи?