【发布时间】:2019-07-17 07:35:47
【问题描述】:
我们使用 Jenkins 服务器通过 Unity 和 Xcode 创建多个 iOS/Android 项目。目前,我们在项目存储库的每个根目录中都有一个 Jenkins 文件,整个配置和构建步骤都在一个文件中:
pipeline {
agent any
environment {
REPOSITORY_URL = 'ssh://git@XYZ.git'
PROJECT_SUBDIR = ''
BUILD_FOR_ANDROID = 'true'
BUILD_FOR_IOS = 'true'
UNITY_VERSION = '2018.4.0f1'
}
// how to load this from a template file? -->
stages {
stage('Checkout') {
steps {
script {
if (env.PROJECT_SUBDIR) {
env.PROJECT_DIR = sh(
script: "echo ${env.WORKSPACE}/${env.PROJECT_SUBDIR}",
returnStdout: true
).trim()
} else {
env.PROJECT_DIR = sh(
script: "echo ${env.WORKSPACE}",
returnStdout: true
).trim()
}
}
// more stuff ...
}
}
}
// <--
}
是否可以在构建过程中从另一个文件(例如模板)加载部分“阶段”?这会将依赖于项目的配置部分与常见的“阶段”部分分开,并且我可以在单个或版本化的模板文件中更新所有项目存储库的构建过程?
它如何与环境变量一起工作?它们仍然在相同的上下文中还是我必须通过它们?
【问题讨论】:
标签: xcode unity3d jenkins continuous-integration jenkins-pipeline