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

Update dev-phome.jenkinsfile

上级 19ad5211
// User-defined Variables:
// Project Name
def PROJECT_NAME = "web-chc"
// Kubernetes Namespace
def KUBE_NAMESPACE = "k8s-dev"
def ip = "192.168.140.111"
// Git Repository
def repoUrl = "http://192.168.110.53/web.dependency/jenkins-pica-cli-example.git"
def repoUrl = "$git"
// Email Address:
//def emailTo = "siyuan.zhang@picahealth.com"
......@@ -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"
// 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"
// 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 环境变量
def ENV_MAP = ["dev": "dev", "test": "testing", "itest":"pre","pre": "pre","prod": "production","release": "production"]
......@@ -61,9 +44,6 @@ pipeline{
echo refVar: $refVar
echo tagType: $tagType
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
"""
}
......@@ -82,10 +62,12 @@ pipeline{
parallel {
stage('install') {
steps {
nodejs('my-nodejs') {
nodejs('nodejs-12.22.0') {
sh """
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{
stage('npm build') {
steps {
nodejs('my-nodejs') {
nodejs('nodejs-12.22.0') {
sh """
npm run core
npm run build:${envProfile} versionType:${tagType}
......@@ -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
stage('deploy k8s'){
stage('deploy'){
when { expression { envProfile ==~ /dev|test/ }}
steps{
sh """
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}
sh label: '', script: """
rsync -av $WORKSPACE/dist/* root@$ip:/usr/share/nginx/html/DEV/phome/$JOB_NAME/
"""
}
}
......@@ -189,3 +113,4 @@ pipeline{
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册