Jenkins script example
1. 参数化构建
2. Jenkins script
podTemplate(name: 'jenkins-slave-4000', cloud: 'kubernetes', namespace: 'default', label: 'jenkins-slave-4000', containers: [ containerTemplate( name: 'jnlp', image: "${HARBOR_URL}/ops/jenkins-slave:v2.2.2", alwaysPullImage: true ), ], volumes: [ hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'), hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker'), hostPathVolume(mountPath: '/usr/local/java', hostPath: '/usr/local/jdk1.8.0_181'), hostPathVolume(mountPath: '/usr/local/maven', hostPath: '/usr/local/maven'), ], imagePullSecrets: ['harbor-pull-secret'] ) { node('jenkins-slave-4000'){ stage('Git Checkout'){ checkout([$class: 'GitSCM', branches: [[name: "origin/${branch}"]], doGenerateSubmoduleConfigurations: false, submoduleCfg: [], userRemoteConfigs: [[credentialsId: "fd788290-8ae0-4207-9e68-e17fcc562275", url: "http://172.16.5.234/standardcmp/java-demo.git"]]]) } stage('Build') { sh ''' ls -la cd java-demo2 mvn clean -Dmaven.test.skip=true package cp -f java-demo-gateway/target/java-demo-gateway-0.0.1-SNAPSHOT.jar CICD/mno.jar ''' } stage('Build and Push Image'){ withCredentials([usernamePassword(credentialsId: 'ecd8b664-a4bb-4269-847f-cf1bb96b8006', passwordVariable: 'password', usernameVariable: 'username')]) { sh ''' ls -la cd java-demo2/CICD docker login -u $username -p $password ${HARBOR_URL} docker build --build-arg HARBOR_URL=$HARBOR_URL --build-arg MEM_REQUEST=${MEM_REQUEST} -t ${HARBOR_URL}/java-demo/java-demo:${BUILD_TIMESTAMP} . docker push ${HARBOR_URL}/java-demo/java-demo:${BUILD_TIMESTAMP} docker tag ${HARBOR_URL}/java-demo/java-demo:${BUILD_TIMESTAMP} ${HARBOR_URL}/java-demo/java-demo:${K8S_ENV} docker push ${HARBOR_URL}/java-demo/java-demo:${K8S_ENV} ''' } } stage('Deploy to k8s'){ sh ''' cd java-demo2/CICD ls -la sed -i "s/:latest/:${BUILD_TIMESTAMP}/;s/HARBOR_URL/${HARBOR_URL}/;s/SERVICE_PORT/${SERVICE_PORT}/;s/K8S_ENV/${K8S_ENV}/;s/MEM_REQUEST/${MEM_REQUEST}/" deploy.yaml ''' kubernetesDeploy configs: 'java-demo2/CICD/deploy.yaml', kubeConfig: [path: ''], kubeconfigId: "4557ba41-47b1-4f64-b5da-40fe95bb07ce", secretName: '', ssh: [sshCredentialsId: '*', sshServer: ''], textCredentials: [certificateAuthorityData: '', clientCertificateData: '', clientKeyData: '', serverUrl: 'https://'] } } }
用一个例子来演示会更加清晰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
2020-05-12 当free -m时buff/cache占用内存资源多+修改最大进程数 、 用户进程打开文件数