提交 71630013 编写于 作者: zhangsiyuan's avatar zhangsiyuan

Update dev-phome.jenkinsfile

上级 19ad5211
// User-defined Variables: // User-defined Variables:
// Project Name
def PROJECT_NAME = "web-chc"
// Kubernetes Namespace def ip = "192.168.140.111"
def KUBE_NAMESPACE = "k8s-dev"
// Git Repository // Git Repository
def repoUrl = "http://192.168.110.53/web.dependency/jenkins-pica-cli-example.git" def repoUrl = "$git"
// Email Address: // Email Address:
//def emailTo = "siyuan.zhang@picahealth.com" //def emailTo = "siyuan.zhang@picahealth.com"
...@@ -17,22 +14,8 @@ def repoUrl = "http://192.168.110.53/web.dependency/jenkins-pica-cli-example.git ...@@ -17,22 +14,8 @@ def repoUrl = "http://192.168.110.53/web.dependency/jenkins-pica-cli-example.git
def CREDENTIALSID = "cd54b3b5-9773-4fac-8272-f783a4fc24ff" def CREDENTIALSID = "cd54b3b5-9773-4fac-8272-f783a4fc24ff"
// Sonar // Sonar
def SONAR_PROJECT_NAME = PROJECT_NAME + '-' + envProfile
def SONAR_PROJECT_KEY = PROJECT_NAME + '-' + envProfile
def SONAR_HOST_URL = "http://192.168.140.201:9000" def SONAR_HOST_URL = "http://192.168.140.201:9000"
// Local Registry
def LOCAL_REGISTRY_USER = "maniu"
def LOCAL_REGISTRY_PASSWORD = "maniujk"
def localRegistry = ["dev": "10.241.65.86:9993", "test": "10.241.65.86:9997", "itest": "10.241.65.86:9995","pre": "10.241.65.86:9995","prod": "10.241.65.86:9999","release": "10.241.65.86:9995"]
def LOCAL_REGISTRY_URL = localRegistry."${envProfile}"
def LOCAL_IMAGE_NAME = LOCAL_REGISTRY_URL + '/' + PROJECT_NAME
// Aliyun Registry
def ALI_REGISTRY_USER = "manniuapp@1111785193823703"
def ALI_REGISTRY_PASSWORD = "manniu2020"
def ALI_REGISTRY_URL = "manniu-app-registry.cn-shanghai.cr.aliyuncs.com"
def ALI_IMAGE_NAME = ALI_REGISTRY_URL + '/' + envProfile + '/' + PROJECT_NAME
// vue 环境变量 // vue 环境变量
def ENV_MAP = ["dev": "dev", "test": "testing", "itest":"pre","pre": "pre","prod": "production","release": "production"] def ENV_MAP = ["dev": "dev", "test": "testing", "itest":"pre","pre": "pre","prod": "production","release": "production"]
...@@ -61,9 +44,6 @@ pipeline{ ...@@ -61,9 +44,6 @@ pipeline{
echo refVar: $refVar echo refVar: $refVar
echo tagType: $tagType echo tagType: $tagType
echo profile: ${envProfile} echo profile: ${envProfile}
echo LOCAL_REGISTRY_URL: ${LOCAL_REGISTRY_URL}
echo SONAR_PROJECT_NAME: ${SONAR_PROJECT_NAME}
echo ALI_IMAGE_NAME: ${ALI_IMAGE_NAME}
printenv printenv
""" """
} }
...@@ -82,10 +62,12 @@ pipeline{ ...@@ -82,10 +62,12 @@ pipeline{
parallel { parallel {
stage('install') { stage('install') {
steps { steps {
nodejs('my-nodejs') { nodejs('nodejs-12.22.0') {
sh """ sh """
npm config ls -l npm config ls -l
npm i --registry http://192.168.110.93:4873/ npm i yarn -g
yarn config set registry http://192.168.110.93:4873/
yarn install --verbose
""" """
} }
} }
...@@ -95,7 +77,7 @@ pipeline{ ...@@ -95,7 +77,7 @@ pipeline{
stage('npm build') { stage('npm build') {
steps { steps {
nodejs('my-nodejs') { nodejs('nodejs-12.22.0') {
sh """ sh """
npm run core npm run core
npm run build:${envProfile} versionType:${tagType} npm run build:${envProfile} versionType:${tagType}
...@@ -116,71 +98,13 @@ pipeline{ ...@@ -116,71 +98,13 @@ pipeline{
} }
} }
stage('SonarQube analysis') {
when { expression { envProfile == 'test'} }
steps {
nodejs('v12.16.2') {
withSonarQubeEnv('sonar') {
sh "/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonar-test/bin/sonar-scanner -D sonar.projectName=${SONAR_PROJECT_NAME} -D sonar.projectKey=${SONAR_PROJECT_KEY} -D sonar.host.url=${SONAR_HOST_URL} -D sonar.projectBaseDir=. -D sonar.sources=. -D sonar.exclusions=.**"
}
}
}
}
stage('Quality Gate') {
when { expression { envProfile == 'test'} }
steps {
timeout(time: 10, unit: 'MINUTES') {
waitForQualityGate(abortPipeline: false)
}
}
}
stage('Build Image') {
steps {
sh "docker build -t ${LOCAL_IMAGE_NAME}:${IMAGE_TAG} ."
}
}
stage('Push Image') {
parallel {
stage('push local image') {
steps {
sh """
docker login -u ${LOCAL_REGISTRY_USER} -p ${LOCAL_REGISTRY_PASSWORD} ${LOCAL_REGISTRY_URL}
docker push ${LOCAL_IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
stage('push remote image') {
steps {
sh """
docker tag ${LOCAL_IMAGE_NAME}:${IMAGE_TAG} ${ALI_IMAGE_NAME}:${IMAGE_TAG}
docker login -u ${ALI_REGISTRY_USER} -p ${ALI_REGISTRY_PASSWORD} ${ALI_REGISTRY_URL}
docker push ${ALI_IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
}
}
stage('prune locally images') {
steps {
sh """
docker rmi ${LOCAL_IMAGE_NAME}:${IMAGE_TAG}
docker rmi ${ALI_IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
// Update app // Update app
stage('deploy k8s'){ stage('deploy'){
when { expression { envProfile ==~ /dev|test/ }} when { expression { envProfile ==~ /dev|test/ }}
steps{ steps{
sh """ sh label: '', script: """
echo "{\\"spec\\": {\\"template\\": {\\"spec\\": {\\"containers\\": [{\\"name\\": \\"${PROJECT_NAME}\\",\\"image\\": \\"${ALI_IMAGE_NAME}:${IMAGE_TAG}\\"}]}}}}" | kubectl patch deploy/${PROJECT_NAME} -n ${KUBE_NAMESPACE} -p "\$(cat -)" --context=${envProfile} rsync -av $WORKSPACE/dist/* root@$ip:/usr/share/nginx/html/DEV/phome/$JOB_NAME/
""" """
} }
} }
...@@ -189,3 +113,4 @@ pipeline{ ...@@ -189,3 +113,4 @@ pipeline{
} }
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册