如何在Spring Boot的Gitlab中将环境变量传递到.gitlab-ci.yml?

时间:2019-02-27 21:36:13

标签: spring-boot continuous-integration environment-variables gitlab

我已经为application.properties设置了以下内容:

spring.datasource.url=jdbc:postgresql://${SERVER_IP}/database
spring.datasource.username=${POSTGRES_USER}
spring.datasource.password=${POSTGRES_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver

要能够打包应用程序,必须将环境变量传递给Maven命令,如下所示:

mvn -DSERVER_IP=111.111.11.1111:5432 -DPOSTGRES_USER=user -DPOSTGRES_PASSWORD="password" package

在.gitlab-ci.yml中,我需要传递这些环境变量

maven-build:
  image: maven:3-jdk-8
  stage: build
  script: "mvn {what should I write here?} package -B"
  artifacts:
    paths:
      - target/*.jar

我了解到,首先必须在Gitlab的设置中定义环境变量,但是我应该如何在.gitlab-ci.yml中引用这些环境变量?

1 个答案:

答案 0 :(得分:0)

Project -> Settings -> CI/CD -> Environment Variables中设置所需的环境变量。

然后在.gitlab-ci.yml中像这样reference

script: mvn -DSERVER_IP=$SERVER_IP -DPOSTGRES_USER=$POSTGRES_USER -DPOSTGRES_PASSWORD=$POSTGRES_PASSWORD package -B

注意:来自documentation

  

重要提示:请注意,变量不会被屏蔽,其值也不会被屏蔽   如果明确要求,可以在作业日志中显示。如果你的   项目是公共的还是内部的,您可以将管道设置为私有   您的project’s Pipelines settings。关注所讨论的话题   #13784用于屏蔽变量。