IntegrateService/.gitlab-ci.yml

94 lines
2.4 KiB
YAML

stages :
- compile
- test
- check
- package
- release
# 代码质量检查
sonarqube-check :
stage : check
tags :
- linux-maven
image : maven:3-eclipse-temurin-17
variables :
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH : "0" # Tells git to fetch all the branches of the project, required by the analysis task
cache :
key : "${CI_JOB_NAME}"
paths:
- .sonar/cache
script :
- mvn verify sonar:sonar -Dsonar.exclusions=target/generated-sources/**/* -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=600
allow_failure: true
only :
- merge_requests
- master
- main
- develop
dependencies :
- integration-test
# 编译
compile :
stage : compile
tags :
- linux-maven
only :
- master
script:
- echo "=============== 开始编译任务 ==============="
- mvn clean compile -DskipTests
# 集成测试
integration-test:
stage : test
tags :
- linux-maven
only :
- master
script :
- echo "=============== 开始集成测试 ==============="
- mvn test
artifacts :
when : always
reports:
junit:
- cs-base/target/surefire-reports/TEST-*.xml
- cs-crypto/target/surefire-reports/TEST-*.xml
- cs-protocol/target/surefire-reports/TEST-*.xml
- cs-database/target/surefire-reports/TEST-*.xml
- cs-authentication/target/surefire-reports/TEST-*.xml
- cs-restful/target/surefire-reports/TEST-*.xml
- cs-integrate-test/target/surefire-reports/TEST-*.xml
dependencies:
- compile
# 打包
package :
stage : package
tags :
- linux-maven
only :
- master
script:
- echo "=============== 开始打包任务 ==============="
- mvn clean package
release_job :
stage : release
image : registry.gitlab.com/gitlab-org/release-cli:latest
tags:
- linux-maven
rules :
- exists:
- ./CHANGELOG.md
- changes:
- ./CHANGELOG.md
script :
- echo "running release_job"
release : # See https://docs.gitlab.com/ee/ci/yaml/#release for available properties
tag_name : '$CI_COMMIT_SHA'
name : 'Release $CI_COMMIT_SHA'
description: './CHANGELOG.md'
ref : '$CI_COMMIT_SHA'