网站建设策划书总结,丽水专业网站制作公司,wordpress屏蔽评论,网站正在建设中空白模板目录
一、实验
1.GitLab本地导入前后端项目
2.Jenkins新建前后端项目流水线
3.Sonarqube录入质量阈与质量配置
4.修改GitLab共享库代码
5.Jenkins手动构建前后端项目流水线
6.Nexus查看制品上传情况
7.优化代码获取RELEASE分支
8.优化Jenkins流水线项目名称 一、实验 …目录
一、实验
1.GitLab本地导入前后端项目
2.Jenkins新建前后端项目流水线
3.Sonarqube录入质量阈与质量配置
4.修改GitLab共享库代码
5.Jenkins手动构建前后端项目流水线
6.Nexus查看制品上传情况
7.优化代码获取RELEASE分支
8.优化Jenkins流水线项目名称 一、实验
1.GitLab本地导入前后端项目
1导入后端maven项目 2导入前端npm项目
2.Jenkins新建前后端项目流水线
1新建后端maven项目流水线 2新建前端npm项目流水线 (3) 新建devops视图包含前后端项目流水线 4修改选项参数更新GitLab前后端项目地址 3.Sonarqube录入质量阈与质量配置
1质量阈 2质量配置 4.修改GitLab共享库代码
1修改制品类Artifacts.grooy
传参type判断项目制品上传类型
package org.devops//上传制品def PushRawArtifacts(repoName,targetDir, filePath, pkgName,type ){withCredentials([usernamePassword(credentialsId: 318df1ad-083b-4158-ac88-2f584446563e, passwordVariable: TOKEN, usernameVariable: USER)]) {sh curl -X POST http://192.168.204.13:8081/service/rest/v1/components?repository${repoName} \-H accept: application/json \-H Content-Type: multipart/form-data \-F raw.directory${targetDir} \-F raw.asset1${filePath}/${pkgName};type${type} \-F raw.asset1.filename${pkgName} \-u ${USER}:${TOKEN}}} 2修改流水线文件Jenkinsfile
上传制品阶段PushArtifacts通过2个if条件判断构建工具类型并完成相应制品上传
Library(mylibmaster) _
import org.devops.*def checkout new Checkout()
def build new Build()
def unittest new UnitTest()
def sonar new Sonar()
def artifacts new Artifacts()pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(Checkout){steps{script {println(GetCode)checkout.GetCode(${env.srcUrl},${env.branchName})}}}stage(build){steps{script{println(Build)build.CodeBuild(${env.buildTool})}}}stage(UnitTest){steps{script{println(Test)unittest.CodeTest(${env.buildTool})}}}stage(SonarScan){steps {script {groupName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1]sonar.CodeSonar(${env.buildTool},projectName,groupName)}}}stage(PushArtifacts){steps {script {repoName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1]targetDir ${projectName}/${BUILD_ID}/if (${env.buildTool} maven){filePath targetpkgName sh returnStdout: true, script: cd target/ ; ls maven*.jarpkgName pkgName.trim()newPkgName ${projectName}-${BUILD_ID}.jarsh cd target; mv ${pkgName} ${newPkgName} type application/java-archive }if (${env.buildTool} npm){filePath distnewPkgName ${projectName}-${BUILD_ID}.tar.gzsh cd ${filePath}[ -f ${newPkgName} ] rm -fr ${newPkgName}tar zcf ${newPkgName} *type application/x-gzip }artifacts.PushRawArtifacts(repoName,targetDir,filePath,newPkgName,type)}}}}}5.Jenkins手动构建前后端项目流水线
1构建后端项目 2构建前端项目 6.Nexus查看制品上传情况
1查看后端项目 2查看前端项目 7.优化代码获取RELEASE分支
1GitLab后端项目新建RELEASE分支 2GitLab前端项目新建RELEASE分支 3修改共享库流水线文件Jenkinsfile
version 变量用来获取分支版本号
Library(mylibmaster) _
import org.devops.*def checkout new Checkout()
def build new Build()
def unittest new UnitTest()
def sonar new Sonar()
def artifacts new Artifacts()pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(Checkout){steps{script {println(GetCode)checkout.GetCode(${env.srcUrl},${env.branchName})}}}stage(build){steps{script{println(Build)build.CodeBuild(${env.buildTool})}}}stage(UnitTest){steps{script{println(Test)unittest.CodeTest(${env.buildTool})}}}stage(SonarScan){steps {script {groupName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1]sonar.CodeSonar(${env.buildTool},projectName,groupName)}}}stage(PushArtifacts){steps {script {repoName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1]version ${env.branchName}.split(-)[-1] //RELEASE-1.1.1targetDir ${projectName}/${version}/if (${env.buildTool} maven){filePath targetpkgName sh returnStdout: true, script: cd target/ ; ls maven*.jarpkgName pkgName.trim()newPkgName ${projectName}-${version}.jarsh cd target; mv ${pkgName} ${newPkgName} type application/java-archive }if (${env.buildTool} npm){filePath distnewPkgName ${projectName}-${version}.tar.gzsh cd ${filePath}[ -f ${newPkgName} ] rm -fr ${newPkgName}tar zcf ${newPkgName} *type application/x-gzip }artifacts.PushRawArtifacts(repoName,targetDir,filePath,newPkgName,type)}}}}}4Jenkins手动构建后端流水线 5Jenkins手动构建前端流水线 6Nexus查看后端项目制品上传情况 7Nexus查看前端项目制品上传情况 8.优化Jenkins流水线项目名称
1Jenkins修改后端项目流水线名称
2Jenkins修改前端项目流水线名称
3修改视图名称 5GitLab修改共享库Jenkinsfile
变量projectName重新取分割后的值
Library(mylibmaster) _
import org.devops.*def checkout new Checkout()
def build new Build()
def unittest new UnitTest()
def sonar new Sonar()
def artifacts new Artifacts()pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(Checkout){steps{script {println(GetCode)checkout.GetCode(${env.srcUrl},${env.branchName})}}}stage(build){steps{script{println(Build)build.CodeBuild(${env.buildTool})}}}stage(UnitTest){steps{script{println(Test)unittest.CodeTest(${env.buildTool})}}}stage(SonarScan){steps {script {groupName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1].split(_)[0]sonar.CodeSonar(${env.buildTool},projectName,groupName)}}}stage(PushArtifacts){steps {script {repoName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1].split(_)[0]version ${env.branchName}.split(-)[-1] //RELEASE-1.1.1targetDir ${projectName}/${version}/if (${env.buildTool} maven){filePath targetpkgName sh returnStdout: true, script: cd target/ ; ls maven*.jarpkgName pkgName.trim()newPkgName ${projectName}-${version}.jarsh cd target; mv ${pkgName} ${newPkgName} type application/java-archive }if (${env.buildTool} npm){filePath distnewPkgName ${projectName}-${version}.tar.gzsh cd ${filePath}[ -f ${newPkgName} ] rm -fr ${newPkgName}tar zcf ${newPkgName} *type application/x-gzip }artifacts.PushRawArtifacts(repoName,targetDir,filePath,newPkgName,type)}}}}}6Jenkins手动构建后端流水线 7Jenkins手动构建前端流水线 8Nexus查看后端项目制品上传情况
9Nexus查看前端项目制品上传情况