You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.9 KiB
83 lines
2.9 KiB
node('haimaxy-jnlp') {
|
|
stage('Clone') {
|
|
echo "1.Clone Stage"
|
|
checkout scm
|
|
script {
|
|
build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
|
|
currentGitBranch = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()
|
|
|
|
// if (env.BRANCH_NAME != 'master') {
|
|
// build_tag = "${env.BRANCH_NAME}-${build_tag}"
|
|
// }
|
|
}
|
|
}
|
|
stage('Test') {
|
|
echo "2.Test Stage"
|
|
}
|
|
stage('Build dist') {
|
|
echo "build dist"
|
|
sh "pwd"
|
|
sh "ls -l"
|
|
//echo $PWD
|
|
//cat /home/jenkins/agent/workspace/jenkins-frontend-demo/package.json
|
|
|
|
//sh "/mnt/nfses/nodeDatas/bin/npm install"
|
|
sh "cp ./package.json /mnt/nfses/nodeDatas/lib/"
|
|
sh "cd /mnt/nfses/nodeDatas/lib"
|
|
//sh "/mnt/nfses/nodeDatas/bin/npm i yarn nrm"
|
|
sh "/mnt/nfses/nodeDatas/bin/nrm add qniao http://120.78.76.88:4873/"
|
|
sh "/mnt/nfses/nodeDatas/bin/nrm use qniao"
|
|
sh "/mnt/nfses/nodeDatas/bin/nrm ls"
|
|
sh "/mnt/nfses/nodeDatas/bin/yarn && cd -"
|
|
sh "ln -s /mnt/nfses/nodeDatas/lib/node_modules node_modules"
|
|
sh "/mnt/nfses/nodeDatas/bin/yarn build"
|
|
|
|
// /home/jenkins/agent/workspace/jenkins-frontend-demo/node_modules
|
|
|
|
// sh "docker run --rm -d -v $PWD/workspace/jenkins-frontend-demo:/home 120.78.76.88/library/qnnode:latest sh -c 'npm install && npm run build'"
|
|
//sh "yarn && yarn build"
|
|
}
|
|
stage('Build docker image') {
|
|
echo "3.Build Docker Image Stage"
|
|
sh "pwd"
|
|
sh "ls -l"
|
|
sh "docker build -t 120.78.76.88/test/jenkins-frontend-demo:${build_tag} ."
|
|
}
|
|
stage('Push') {
|
|
echo "4.Push Docker Image Stage"
|
|
withCredentials([usernamePassword(credentialsId: 'harbor', passwordVariable: 'harborPassword', usernameVariable: 'harborUser')]) {
|
|
sh "docker login -u ${harborUser} -p ${harborPassword} 120.78.76.88"
|
|
sh "docker push 120.78.76.88/test/jenkins-frontend-demo:${build_tag}"
|
|
}
|
|
}
|
|
stage('YAML') {
|
|
echo "5. Change YAML File Stage"
|
|
//def userInput = input(
|
|
// id: 'userInput',
|
|
// message: 'Choose a deploy environment',
|
|
// parameters: [
|
|
// [
|
|
// $class: 'ChoiceParameterDefinition',
|
|
// choices: "Dev\nQA\nProd",
|
|
// name: 'Env'
|
|
// ]
|
|
// ]
|
|
//)
|
|
//echo "This is a deploy step to ${userInput.Env}"
|
|
sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s.yaml"
|
|
//sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s.yaml"
|
|
}
|
|
stage('Deploy') {
|
|
echo "6. Deploy Stage"
|
|
//if (userInput.Env == "Dev") {
|
|
// deploy dev stuff
|
|
//} else if (userInput.Env == "QA"){
|
|
// deploy qa stuff
|
|
//} else {
|
|
// deploy prod stuff
|
|
// input "确认要部署线上环境吗?"
|
|
//}
|
|
sh "kubectl apply -f k8s.yaml"
|
|
echo "http://192.168.0.170:30010"
|
|
}
|
|
}
|