diff --git a/pipeline b/pipeline new file mode 100644 index 000000000..52a734077 --- /dev/null +++ b/pipeline @@ -0,0 +1,47 @@ +variables: + # sonner scanner 安装目录 + SCANNER_HOME : "/usr/local/sonar-scanner-4.6.2.2472-linux" + # 扫描代码路径 + SCAN_DIR : "src" + # 制品目录 + ARTIFACT_PATH : 'target/*.jar' + # maven 仓库地址 + MAVEN_REPO: /root/.m2/repository + +stages: + - compile + +编译: + stage: compile + tags: + - test + # interruptible 当新管道在同一分支上启动时,可以取消正在运行的作业。 + interruptible: true + # 是否允许失败,允许的话如果当前阶段运行失败还会继续执行下一个阶段 + allow_failure: false + # 运行脚本 + script: + - java -version + - mvn -version + # maven 编译 + - mvn -Dmaven.repo.local=$MAVEN_REPO clean -U package -Dfile.encoding=UTF-8 -DskipTests=true + # 代码扫描 + - "$SCANNER_HOME/bin/sonar-scanner -Dsonar.projectKey=${CI_PROJECT_NAME} \ + -Dsonar.projectName=${CI_PROJECT_NAME} \ + -Dsonar.projectVersion=${CI_COMMIT_REF_NAME} \ + -Dsonar.ws.timeout=30 \ + -Dsonar.projectDescription=${CI_PROJECT_TITLE} \ + -Dsonar.links.homepage=${CI_PROJECT_URL} \ + -Dsonar.sources=${SCAN_DIR} \ + -Dsonar.sourceEncoding=UTF-8 \ + -Dsonar.java.binaries=target/classes \ + -Dsonar.java.test.binaries=target/test-classes \ + -Dsonar.java.surefire.report=target/surefire-reports \ + -Dsonar.branch.name=${CI_COMMIT_REF_NAME}" + - ls -lh target/ + # Maven编译,所以会有Jar包产物,这里定义产物的过期时间 + artifacts: + name: $PROJECT + expire_in: 1 days + paths: + - target/*.jar