jenkins-demo

 
node('haimaxy-jnlp') {
    stage('Clone') {
      echo "1.Clone Stage"
      git url: "https://github.com/cnych/jenkins-demo.git"
      script {
          build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
    }
    stage('Test') {
      echo "2.Test Stage"
    }
    stage('Build') {
      echo "3.Build Docker Image Stage"
      sh "docker build -t cnych/jenkins-demo:${build_tag} ."
    }
    stage('Push') {
      echo "4.Push Docker Image Stage"
      withCredentials([usernamePassword(credentialsId: 'dockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) {
          sh "docker login -u ${dockerHubUser} -p ${dockerHubPassword}"
          sh "docker push cnych/jenkins-demo:${build_tag}"
    }
    stage('YAML') {
      echo "5. Change YAML File Stage"
      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"
      sh "kubectl apply -f k8s.yaml"
    }
}
 
 
 
详解:
  1. haimaxy-jnlp:基础设置中的标签,表明会使用salve
  2. build_tag:采用和git commit的记录为镜像的 tag
  3. 此处使用的docker hub仓库,直接登录上传(此处的账户密码可以使用系统管理——》凭证配置)
    k8s中可以创建secret+serviceaccount完成
  4. 在上传镜像时使用变量调用用户名+密码(避免明文)
  5. 替换yaml文件中的tag值
posted @ 2020-03-09 21:39  jayce9102  阅读(166)  评论(0编辑  收藏  举报