Наш текущий трубопровод Дженкинса выглядит так:
pipeline {
agent {
docker {
label 'linux'
image 'java:8'
args '-v /home/tester/.gradle:/.gradle'
}
}
environment {
GRADLE_USER_HOME = '/.gradle'
GRADLE_PROPERTIES = credentials('gradle.properties')
}
stages {
stage('Build') {
steps {
sh 'cp ${GRADLE_PROPERTIES} ${GRADLE_USER_HOME}/'
sh './gradlew clean check'
}
}
}
post {
always {
junit 'build/test-results/**/*.xml'
}
}
}
Мы монтируем /.gradle
, потому что хотим повторно использовать кэшированные данные между сборками. Проблема в том, что если машина является новой машиной сборки, каталог на хосте еще не существует.
Куда мне поместить логику установки, которая запускается до , чтобы я мог убедиться, что этот каталог существует до запуска образа докера?