image: 192.168.40.153:9080/common/maven:3.8.1-openjdk-11-slim variables: MAVEN_CLI_OPTS: --batch-mode --errors --show-version SONAR_HOST_URL: http://192.168.40.153:9900 SONAR_PROJECT_KEY: groot-stream stages: - test - build - deploy # 代码测试 test: stage: test script: - echo "$MAVEN_SETTINGS_XML" > /usr/share/maven/conf/settings.xml # 由于该项目引用了自身子模块中使用 shade-plugin 生成的 uber-jar, # 故而导致需要先执行这些子模块的 package 操作才能使其他模块正常执行 test,所以此处使用 package 代替 test 用于执行单元测试 - mvn $MAVEN_CLI_OPTS clean package only: - merge_requests - tags # 构建。一般用于构建 develop 分支上的 snapshot 版本。 build: stage: build script: - echo "$MAVEN_SETTINGS_XML" > /usr/share/maven/conf/settings.xml # - mvn $MAVEN_CLI_OPTS enforcer:enforce@snapshot-version-check - mvn $MAVEN_CLI_OPTS clean package -DskipTests only: - develop # 发布。用于发布候选版本,正式版本以及修订版等 release 版本。 deploy: stage: deploy script: - echo "$MAVEN_SETTINGS_XML" > /usr/share/maven/conf/settings.xml - mvn $MAVEN_CLI_OPTS enforcer:enforce@release-version-check - |- mvn $MAVEN_CLI_OPTS clean verify sonar:sonar -Dsonar.projectKey=$SONAR_PROJECT_KEY \ -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN_TOKEN \ -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 - mvn $MAVEN_CLI_OPTS clean deploy -DskipTests only: - tags