Получить данные о файле довольно сложно в конвейере Дженкинса при использовании песочницы Groovy, поскольку вам не разрешено делать new File(...).lastModified
.Однако есть findFiles
step , который в основном возвращает список обернутых File
объектов с геттером для последнего измененного времени в миллисисах, поэтому мы можем использовать findFiles(glob: "...")[0].lastModified
.
Возвращенный массив может быть пустым, поэтому мы должны проверить это (см. Полный пример ниже).
Текущее время начала сборки в миллисах доступно через currentBuild.currentBuild.startTimeInMillis
.
Теперь, когда мыGit оба, мы можем использовать их в expression
:
pipeline {
agent any
stages {
stage("create file") {
steps {
touch "testfile.log"
}
}
stage("when file") {
when {
expression {
def files = findFiles(glob: "testfile.log")
files && files[0].lastModified < currentBuild.startTimeInMillis
}
}
steps {
echo "i ran"
}
}
}
}