Нужно развернуть к постановке - PullRequest
0 голосов
/ 27 ноября 2018

Привет. Я пытаюсь выполнить развертывание только в том случае, когда код передается в режим подготовки, а развертывание в мастер-режиме - только когда код передается в мастер. Помогите мне выполнить это, вот скрипт groovy.

node{
  currentBuild.result = "SUCCESS"

  try {
    stage('Pull-msater') {
      // pulling master from the repo
      git 'https://github.com/raj1rana/mongoDB-docker.git'
    }

    stage('pull-staging'){
      //pulling staging from the repo
      git branch: 'staging', url: 'https://github.com/raj1rana/mongoDB-docker.git'
    }

    stage('deploy-staging') {
      //deploy to staging server
      sh 'rsync -avz  -e ssh --exclude .git /var/lib/jenkins/workspace/pipeline-test/  ubuntu@13.232.107.33:/home/ubuntu/Docker-files/'
    }

    stage('deploy-production'){
      //deploy to production server
      sh 'rsync -avz -e ssh  --exclude .git  /var/lib/jenkins/workspace/pipeline-test/  ubuntu@13.232.107.33:/home/ubuntu/master'
    }

    stage('mail fail/sucess'){
      mail body: 'project build successful',
      from: 'xxxx@yyyyy.com',
      replyTo: 'xxxx@yyyy.com',
      subject: 'project build successful',
      to: 'yyyyy@yyyy.com'
    }
  }
  catch (err) {
    currentBuild.result = "FAILURE"

    mail body: "project build error is here: ${env.BUILD_URL}" ,
    from: 'xxxx@yyyy.com',
    replyTo: 'yyyy@yyyy.com',
    subject: 'project build failed',
    to: 'zzzz@yyyyy.com'

    throw err
  }
}

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

в вашем конвейере вы делаете два раза (главный и промежуточный) git checkout в одном и том же каталоге, то есть в каталоге рабочего пространства.Таким образом, окончательным результатом будет извлечение промежуточного каталога.

Вы можете упростить процесс сборки, создав две работы, одна для производства, а другая для подготовки, не смешивайте обе в одной работе.

Ниже приведен пример для постановки:

node{
  currentBuild.result = "SUCCESS"

  try {

    stage('pull-staging'){
      //pulling staging from the repo
      git branch: 'staging', url: 'https://github.com/raj1rana/mongoDB-docker.git'
    }

    stage('deploy-staging') {
      //deploy to staging server
      sh 'rsync -avz  -e ssh --exclude .git /var/lib/jenkins/workspace/pipeline-test/  ubuntu@13.232.107.33:/home/ubuntu/Docker-files/'
    }

    stage('mail fail/sucess'){
      mail body: 'project build successful',
      from: 'xxxx@yyyyy.com',
      replyTo: 'xxxx@yyyy.com',
      subject: 'project build successful',
      to: 'yyyyy@yyyy.com'
    }
  }
  catch (err) {
    currentBuild.result = "FAILURE"

    mail body: "project build error is here: ${env.BUILD_URL}" ,
    from: 'xxxx@yyyy.com',
    replyTo: 'yyyy@yyyy.com',
    subject: 'project build failed',
    to: 'zzzz@yyyyy.com'

    throw err
  }
}

Ниже приведен пример для постановки:

node{
  currentBuild.result = "SUCCESS"

  try {
    stage('Pull-msater') {
      // pulling master from the repo
      git 'https://github.com/raj1rana/mongoDB-docker.git'
    }

    stage('deploy-production'){
      //deploy to production server
      sh 'rsync -avz -e ssh  --exclude .git  /var/lib/jenkins/workspace/pipeline-test/  ubuntu@13.232.107.33:/home/ubuntu/master'
    }

    stage('mail fail/sucess'){
      mail body: 'project build successful',
      from: 'xxxx@yyyyy.com',
      replyTo: 'xxxx@yyyy.com',
      subject: 'project build successful',
      to: 'yyyyy@yyyy.com'
    }
  }
  catch (err) {
    currentBuild.result = "FAILURE"

    mail body: "project build error is here: ${env.BUILD_URL}" ,
    from: 'xxxx@yyyy.com',
    replyTo: 'yyyy@yyyy.com',
    subject: 'project build failed',
    to: 'zzzz@yyyyy.com'

    throw err
  }
}
0 голосов
/ 27 ноября 2018

Вы используете env.BRANCH_NAME для его достижения.

if(env.BRANCH_NAME == 'master') {
  // some build steps
} else  {
  // some build steps
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...