yarkov
@yarkov
Помог ответ? Отметь решением.

Как вывести stdout из скрипта в Jenkins?

Пытаюсь на VPS поднять Jenkins. Там уже склонирован репозиторий и запущен в докере.
Мне надо выполнить там пару команд всего при деплое, именно в том каталоге.

pipeline {
  agent any
  stages {
    stage('Test') {
      steps {
        slackSend (color: '#FFFF00', message: "TEST STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        sh 'chmod +x ./sh/*.sh'
        sh 'bash ./sh/postinstall.sh'
        sh 'cp .env.example .env'
        sh 'rm -rf ./node_modules'
        sh 'npm install --from-lock-file --force --no-save'
        sh 'npm run lint'
        sh 'npm run docs'
        sh 'npm run test'
        slackSend (color: '#00FF00', message: "TEST COMPLETED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
      }
    }
    stage('Stage build') {
      when {
        anyOf {
          branch 'dev'
        }
      }
      steps {
        slackSend (color: '#FFFF00', message: "STAGE BUILD STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        ws('/home/ubuntu/deploy/backend') {
          sh(returnStdout: true, script: 'chmod +x ./sh/*.sh && bash ./sh/stage.sh')
        }
        slackSend (color: '#00FF00', message: "STAGE BUILD COMPLETED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
      }
    }
  }

  environment {
    STAGE_PATH = '/home/ubuntu/deploy/backend'
  }

  post {
    failure {
      slackSend (color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
    }
  }
}


Но на шаге Stage build в лог Jenkins выдает одну строку: /home/ubuntu/deploy/backend@tmp.

Хотя запуская на локальной машине в stdout выводится лог сборки Docker контейнера из скрипта sh/stage.sh.
  • Вопрос задан
  • 561 просмотр
Решения вопроса 1
@SPBMVP
dir('/home/ubuntu/deploy/backend/sh') {
    sh "chmod +x stage.sh &&  ./stage.sh"
}

И все должно выводится в консоль.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы