我使用私有Github repo和Jenkinsfile
来构建项目。我实际上喜欢做两个单独的构建,一个用于develop
构建,每当构建一个分支时构建,一个用于qa
构建每晚构建。我已经建立了一个Github组织,因为这似乎是使用凭证签出存储库并执行构建的唯一方法。
我的Jenkins文件看起来像:
node {
stage('Preparation') {
properties([[$class: 'ParametersDefinitionProperty',
parameterDefinitions: [
[$class: 'StringParameterDefinition', name: 'build_url'],
[$class: 'StringParameterDefinition', name: 'build_url2'],
]
]])
checkout scm
}
stage('Build') {
dir('Vecna_iDeliver_Torso') {
sh 'npm install'
sh 'node_modules/.bin/gulp build'
}
}
stage('Upload') {
sh 'aws s3 sync dist s3://app-dev'
}
stage('Cleanup') {
deleteDir()
}
}
这一切都很好,但我需要能够在运行gulp
时设置环境变量(构建URL),它们的值将取决于我想要构建的环境。我要上传的s3
存储桶也取决于环境。
当我在上面设置properties
然后在我的Github组织下找到构建作业时,我可以看到它正在接受构建参数。但是,似乎没有任何方法可以让我在外部设置这些。我只能使用"使用参数构建。"如果我想每次都手动运行构建,这样会很好,但我希望它每晚运行。由于两个不同的环境需要不同的构建参数值,因此我无法将它们设置为默认值。
有没有办法让我使用Jenkins管道提前设置构建参数值?