Files
baiyue-firstleg/.gitlab-ci.yml
T
2026-08-25 15:08:34 +08:00

107 lines
2.5 KiB
YAML

image: maven:3.9.9-eclipse-temurin-17
stages:
- verify
- package
variables:
MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dfile.encoding=UTF-8"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
cache:
key: "maven-$CI_COMMIT_REF_SLUG"
paths:
- .m2/repository/
Java拓扑合同:
stage: verify
image: node:22-alpine
cache: []
script:
- node --test scripts/java-topology-contract.test.mjs
OpenAPI有效性:
stage: verify
image: node:22-alpine
cache: []
script:
- npm ci --ignore-scripts --prefix scripts/openapi-validation
- npm test --prefix scripts/openapi-validation
- npm run validate --prefix scripts/openapi-validation
静态分析报告:
stage: verify
allow_failure: true
script:
- mvn $MAVEN_CLI_OPTS -Pstatic-analysis-report -DskipTests verify
artifacts:
when: always
expire_in: 7 days
paths:
- "**/target/spotbugs*.xml"
- "**/target/site/spotbugs.html"
质量摘要:
stage: verify
image: node:22-alpine
cache: []
allow_failure: true
needs:
- job: OpenAPI有效性
artifacts: false
- job: 校验与测试
artifacts: true
- job: 静态分析报告
artifacts: true
script:
- node --test scripts/java-quality-summary.test.mjs
- node scripts/java-quality-summary.mjs --output target/java-quality-summary.json --require-jacoco --require-spotbugs
artifacts:
when: always
expire_in: 7 days
paths:
- target/java-quality-summary.json
校验与测试:
stage: verify
script:
- mvn $MAVEN_CLI_OPTS clean verify
artifacts:
when: always
expire_in: 7 days
reports:
junit:
- "**/target/surefire-reports/TEST-*.xml"
paths:
- "**/target/surefire-reports/"
- "**/target/site/jacoco/"
- "**/target/jacoco.exec"
打包服务:
stage: package
needs:
- Java拓扑合同
- OpenAPI有效性
- 校验与测试
script:
- mvn $MAVEN_CLI_OPTS -DskipTests package
artifacts:
expire_in: 7 days
paths:
- gateway/target/*.jar
- gateway-overseas/target/*.jar
- auth/target/*.jar
- iam/target/*.jar
- order/target/*.jar
- firstleg/target/*.jar
- finance/target/*.jar
- warehouse/target/*.jar
- warehouse-overseas-service/target/*.jar
- overseas-security-service/target/*.jar
- lastleg-service/target/*.jar
- file/target/*.jar
- print/target/*.jar
- audit-service/target/*.jar
- integration-service/target/*.jar
- event-bridge-service/target/*.jar