kind: pipeline name: Water Management System CI/CD steps: # ==================== 代码检查步骤 ==================== - name: checkstyle image: maven:3.8.4-openjdk-17 commands: - cd /workspace - mvn checkstyle:checkstyle - name: spotbugs image: maven:3.8.4-openjdk-17 commands: - cd /workspace - mvn spotbugs:check - name: pmd image: maven:3.8.4-openjdk-17 commands: - cd /workspace - mvn pmd:check # ==================== 单元测试步骤 ==================== - name: test image: maven:3.8.4-openjdk-17 commands: - cd /workspace - mvn test # ==================== 代码覆盖率报告 ==================== - name: coverage image: maven:3.8.4-openjdk-17 commands: - cd /workspace - mvn jacoco:report when: status: success # ==================== 构建步骤 ==================== - name: build image: docker:20.10 volumes: - name: docker-sock path: /var/run/docker.sock commands: - docker version - cd /workspace - chmod +x docker/ci/build.sh - docker/ci/build.sh # ==================== Docker镜像推送 ==================== - name: push image: docker:20.10 volumes: - name: docker-sock path: /var/run/docker.sock settings: registry: - url: http://git.xayunmei.com:2345 username: bot_dev1 password: ${DOCKER_REGISTRY_PASSWORD} commands: - docker login http://git.xayunmei.com:2345 -u bot_dev1 -p $DOCKER_REGISTRY_PASSWORD - docker images | grep water - for img in water/*; do docker push $img; done # ==================== 部署到开发环境 ==================== - name: deploy-dev image: docker:20.10 volumes: - name: docker-sock path: /var/run/docker.sock commands: - cd /workspace - docker-compose up -d when: branch: main status: success volumes: - name: docker-sock host: path: /var/run/docker.sock settings: docker_config: username: bot_dev1 password: ${DOCKER_REGISTRY_PASSWORD}