我想在本地或在 CI 中构建项目时在存储库之间切换。我在这里读到 https://docs.gitlab.com/ee/ci/variables/predefined_variables.html Gitlab 创建环境变量"CI"并想使用它。我接下来要做:
if (System.getenv('CI') != null) {
repositories {
println 'CI=' + System.getenv('CI')
mavenCentral()
maven {
url 'myrepo'
}
}
} else {
repositories {
println '*CI= ' + System.getenv('CI')
mavenCentral()
mavenLocal()
}
}
但是当我在 CI 中构建时,我看到 CI=null。如何根据我构建项目的位置正确定义存储库?
更新:我在gitlab-ci中使用kaniko。它在没有 kaniko 的项目中工作正常。
CI变量必须在gitlab-ci中使用--build-arg定义,并在项目中使用ARG指令定义Dockerfile:
Dockerfile:
ARG CI
Gitlab-ci:
build:
stage: build
script:
- /kaniko/executor
--build-arg CI="${CI}"
通过 ARG 指令,我告诉 Dockerfile 让 Docker 知道,它希望在构建过程中将一个名为 CI 的变量传递给它。和 --build-arg 设置值。