我正在使用带有 a 的私有 Github 存储库Jenkinsfile
来构建项目。我实际上想做两个单独的构建,一个用于develop
在推送分支时构建,另一个用于qa
每晚构建。我已经建立了一个 Github 组织,因为这似乎是使用凭据签出存储库并执行构建的唯一方法。
我的 Jenkinsfile 看起来像:
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()
}
}
这一切都很好,但我需要能够在运行时设置环境变量(构建 url)gulp
,它们的值将取决于我想要构建的环境。我要上传到的s3
存储桶也取决于环境。
当我设置properties
上述内容,然后在我的 Github 组织下找到构建作业时,我可以看到它正在接受构建参数。但是,我似乎没有办法在外部设置这些。我只能将它们与“使用参数构建”一起使用。如果我想每次都手动运行构建,这会很好,但我希望它每晚运行。由于两种不同的环境需要不同的构建参数值,所以我不能将它们设置为默认值。
有什么方法可以让我使用 Jenkins 管道提前设置构建参数值?