运行 gitlab-ci.yml 阶段的 "script" 中的可选命令?
Running optional commands in a gitlab-ci.yml's stage's "script"?
我有下面的阶段,它将 运行 一个基于我的 java 代码的 Maven 构建,它工作正常。但是,我有多个 Java 项目 运行 宁同一个 Maven 构建,并且 Java 项目之一需要额外的命令才能 运行 通过 script
。
例如 script
中的第一个命令需要是 npm i yarn
,但仅适用于单个项目。我将如何使用变量来添加它?
build maven:
artifacts:
expire_in: 3 day # don't keep these around for long
paths:
- target/
script:
- echo "PIPELINE_DEFAULT_IMAGE - ${PIPELINE_DEFAULT_IMAGE}"
- mvn -version
- mvn package -Pprod -DskipTests=true
变量CI_PROJECT_NAME
包含项目名称。
示例.gitlab-ci.yml
:
myjob:
script:
- if [ "${CI_PROJECT_NAME}" == "test" ]; then echo I am a CI job in the test project; fi
- echo done
第一个脚本行只会在 test
项目中 运行。第二个脚本行将在每个项目中 运行。
我有下面的阶段,它将 运行 一个基于我的 java 代码的 Maven 构建,它工作正常。但是,我有多个 Java 项目 运行 宁同一个 Maven 构建,并且 Java 项目之一需要额外的命令才能 运行 通过 script
。
例如 script
中的第一个命令需要是 npm i yarn
,但仅适用于单个项目。我将如何使用变量来添加它?
build maven:
artifacts:
expire_in: 3 day # don't keep these around for long
paths:
- target/
script:
- echo "PIPELINE_DEFAULT_IMAGE - ${PIPELINE_DEFAULT_IMAGE}"
- mvn -version
- mvn package -Pprod -DskipTests=true
变量CI_PROJECT_NAME
包含项目名称。
示例.gitlab-ci.yml
:
myjob:
script:
- if [ "${CI_PROJECT_NAME}" == "test" ]; then echo I am a CI job in the test project; fi
- echo done
第一个脚本行只会在 test
项目中 运行。第二个脚本行将在每个项目中 运行。