pipeline案例
前端nodejs
// 公共def registry = "192.168.16.18"// 项目def project = "scm-dev"def app_name = "batar-scm-web"def image_name = "${registry}/${project}/${app_name}:1.${BUILD_NUMBER}" // ${BUILD_NUMBER} 为tag标签 获取Jenkins构建时的编号(累计+1)def git_address = "http://192.168.16.20/batar-scm/scn-web.git"// 认证def secret_name = "registry-pull-secret"def docker_registry_auth = "3883fa5e-4067-41c7-87d4-238142944c84"def git_auth = "35e81e5f-3d31-4d31-8190-2a47820683b3"//def k8s_auth = "d2374738-3c6f-4077-aa55-186b74c50002"pipeline {agent {label "k8s-master(16.24)"}stages {stage('拉取代码') {steps {checkout([$class: 'GitSCM',branches: [[name: '*/dev']],doGenerateSubmoduleConfigurations: false,extensions: [],submoduleCfg: [],userRemoteConfigs: [[credentialsId: "${git_auth}",url: "${git_address}"]]])}}stage('编译代码') {steps {sh """source /root/.bashrccnpm installecho y| fef test"""}}stage('镜像制作') {steps {sh """echo 'FROM nginxLABEL maintainer fengyuanfeiRUN rm -rf /usr/share/nginx/html/* \&& rm -f /etc/localtime \&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezoneCOPY dist /usr/share/nginx/html/WORKDIR /usr/share/nginxEXPOSE 80' > Dockerfiledocker build -t ${image_name} .docker login -u admin -p Harbor12345 ${registry}docker push ${image_name}docker rmi ${image_name}"""}}stage('部署到k8s') {steps {sh """cp /root/batar/scm/scm-web-deply.yaml ./dev-scm-web-deploy.yamlsed -i 's#BATAR#scm-web-dev#g' dev-scm-web-deploy.yamlsed -i 's#IMAGE#"${image_name}"#g' dev-scm-web-deploy.yamlsed -i 's#NAMESPACE#dev#g' dev-scm-web-deploy.yamlsed -i 's#ClusterIP#NodePort#g' dev-scm-web-deploy.yamlsed -i 's#BBS#31002#g' dev-scm-web-deploy.yamlkubectl apply -f dev-scm-web-deploy.yaml"""}}}}
后端java项目
// 公共def registry = "192.168.16.18"// 项目def project = "scm-dev"def app_name = "batar-scm"def image_name = "${registry}/${project}/${app_name}:1.${BUILD_NUMBER}"def git_address = "http://192.168.16.20/batar-scm/scm-manage.git"// 认证def secret_name = "registry-pull-secret"def docker_registry_auth = "3883fa5e-4067-41c7-87d4-238142944c84"def git_auth = "35e81e5f-3d31-4d31-8190-2a47820683b3"//def k8s_auth = "d2374738-3c6f-4077-aa55-186b74c50002"pipeline {agent nonestages {stage('拉取代码') {agent { node { label "oms+bms(16.8)"} }steps {checkout([$class: 'GitSCM',branches: [[name: '*/dev']],doGenerateSubmoduleConfigurations: false,extensions: [],submoduleCfg: [],userRemoteConfigs: [[credentialsId: "${git_auth}",url: "${git_address}"]]])}}stage('编译代码') {agent { node { label "oms+bms(16.8)"} }steps {sh """pwd && ls/application/maven/bin/mvn clean install -Dmaven.test.skip=true"""}}stage('镜像制作') {agent { node { label "oms+bms(16.8)"} }steps {sh """sudo docker pssudo docker login -u admin -p Harbor12345 ${registry}sudo docker build --build-arg JAR_FILE=./target/*.jar -t ${image_name} .sudo docker push ${image_name}sudo docker rmi ${image_name}"""}}stage('部署到k8s') {agent { node { label "k8s-master(16.24)"} }steps {sh """cp /root/batar/scm/batar-delpoy.yaml ./dev-scm-deploy.yamlsed -i 's#BATAR#scm-dev#g' dev-scm-deploy.yamlsed -i 's#IMAGE#"${image_name}"#g' dev-scm-deploy.yamlsed -i 's#NAMESPACE#dev#g' dev-scm-deploy.yamlsed -i 's#ZZZ#8080#g' dev-scm-deploy.yamlsed -i 's#ClusterIP#NodePort#g' dev-scm-deploy.yamlsed -i 's#BBS#31001#g' dev-scm-deploy.yamlkubectl apply -f dev-scm-deploy.yaml"""}}}}
