Я определил переменную среды в конвейерном скрипте Jenkins, но эта переменная не обнаружена Flywayrunner. Интересно, что-то упускаю.
#!groovy
pipeline {
agent any
parameters {
choice(name: "ENVIRONMENT", choices: "dev\ntest\nprod", description: 'Environment')
}
environment {
FLYWAY_PLACEHOLDERS_ENV=params.ENVIRONMENT.toUpperCase()
}
stages {
steps {
flywayrunner
installationName: "flywaytool",
flywayCommand: "migrate",
url: "jdbc:sqlserver://${DB_URL_DEV};databaseName=${DB_NAME};integratedSecurity=true;authenticationScheme=JavaKerberos;",
credentialsId: "...",
locations: "..."
}
}
}
Кроме того, я использую ${env}
в сценарии. sql.
Когда я указываю заполнитель непосредственно в flywayrunner
команда, заполнитель вводится в Flyway.
flywayrunner
installationName: "flywaytool",
flywayCommand: "migrate",
url: "jdbc:sqlserver://${DB_URL_DEV};databaseName=${DB_NAME};integratedSecurity=true;authenticationScheme=JavaKerberos;",
credentialsId: "...",
locations: "..."
commandLineArgs: "-placeholders.env=${FLYWAY_PLACEHOLDERS_ENV}"