Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

alair 4 luni în urmă
părinte
comite
12c22fafec
1 a modificat fișierele cu 47 adăugiri și 0 ștergeri
  1. 47 0
      Jenkinsfile

+ 47 - 0
Jenkinsfile

@@ -0,0 +1,47 @@
+// 所有的脚本命令都放在pipeline中
+pipeline{
+	// 指定任务的构建在哪个集群节点中执行,any指任意一个
+	agent any
+	// 声明全局变量,方便后面使用
+	environment {
+        harbor_user = 'admin'
+        harbor_passwd = 'Zq0034bgns.'
+        harbor_address = '192.168.0.3:9080'
+        harbor_repo = 'repo'
+	}
+    stages {
+        stage('拉取git仓库代码') {
+            steps {
+                checkout scmGit(branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: 'ef3dc13b-dfb3-4c7a-932d-af43fd8e0fa0', url: 'http://10.244.0.5:8418/alair/myTest.git']])
+            }
+        }
+        stage('通过maven构建项目') {
+            steps {
+                sh '/var/jenkins_home/apache-maven-3.9.11/bin/mvn clean package -DskipTests'
+            }
+        }
+        stage('通过SonerQube做代码质量检测') {
+            steps {
+                sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.token=squ_b5fe8ff602839ce1b3374e2716a1741e62777e79'
+            }
+        }
+        stage('通过Docker制作自定义镜像') {
+            steps {
+                sh '''mv ./target/*.jar ./docker/
+                docker build -t ${JOB_NAME}:$tag ./docker/'''
+            }
+        }
+        stage('将自定义镜像推送到Harbor') {
+            steps {
+                sh '''docker login -u ${harbor_user} -p ${harbor_passwd} ${harbor_address}
+                docker tag ${JOB_NAME}:$tag ${harbor_address}/${harbor_repo}/${JOB_NAME}:$tag
+                docker push ${harbor_address}/${harbor_repo}/${JOB_NAME}:$tag'''
+            }
+        }
+        stage('通过Publish Over SSH通知目标服务器') {
+            steps {
+                sshPublisher(publishers: [sshPublisherDesc(configName: 'rancher-k8s-dev', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "deploy.sh $harbor_address $harbor_repo $JOB_NAME $tag $container_port $host_port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
+            }
+        }
+    }
+}