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 - auth/target/*.jar - iam/target/*.jar - order/target/*.jar - firstleg/target/*.jar - finance/target/*.jar - warehouse/target/*.jar - warehouse-overseas-service/target/*.jar - lastleg-service/target/*.jar - file/target/*.jar - print/target/*.jar - audit-service/target/*.jar - integration-service/target/*.jar