Ubuntu 上 GitLab CI/CD 流程优化实操指南
一 基础与 Runner 优化
二 依赖与镜像层缓存加速
cache:
key: ${CI_COMMIT_REF_SLUG} # 按分支隔离
paths:
- node_modules/
cache:
key:
files:
- pom.xml
paths:
- .m2/repository/
FROM maven:3.8-jdk-11 AS builder
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src
RUN mvn package -DskipTests
FROM openjdk:11-jre-slim
COPY --from=builder /target/app.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
三 并行化与依赖编排
test:
stage: test
parallel:
matrix:
- TEST_TYPE: [unit, integration, e2e]
script:
- ./run-tests.sh --type $TEST_TYPE
build:
stage: build
script: ./build.sh
test:
stage: test
needs: [build]
script: ./test.sh
deploy-prod:
stage: deploy
needs: [test]
script: ./deploy.sh
when: manual
environment: production
四 可靠性与安全性加固
flaky-job:
script: ./run-flaky.sh
timeout: 30m
retry: 2
五 可观测性与持续优化