как оформить заказ только на указанную c папку из git репо и собрать - PullRequest
0 голосов
/ 18 февраля 2020

Привет, ребята, мне нужна помощь в jenkinsfile. Ниже приведен мой сценарий использования

Это мой репо GIT:

root
  |->app1
  |   |->jenkinsfile
  |   |->dockerfile
  |->app2
      |->jenkinsfile
      |->dockerfile

У меня есть monorepo, app1 и app2 в папке root, и я хочу, чтобы их это изменение в папке app1, только app1 должно собираться и то же самое для app2. Я определил jenkinsfile в jenkins, но при его сборке. он ищет dockerfile1 в папке root, а не в app1.

jenkisfile:

pipeline {
    agent any

    environment {
        PIPENV_VENV_IN_PROJECT = true
        DEVPI_USER = '\'jenkins_user\''
        DEVPI_PASSWORD = '\'V$5_Z%Bf-:mJ\''
        WORKSPACE="${WORKSPACE}/app1"

    }
    stages {
        stage('Notify Bitbucket') {
            steps {
                bitbucketStatusNotify(buildState: 'INPROGRESS')
            }
        }

        stage('Build Environment') {
            steps {
                sh 'docker build -t app-builder .'
            }
        }

        stage('Test') {

            steps{
                sh 'docker run --rm app-builder pytest'
            }
        }

Ответы [ 3 ]

0 голосов
/ 20 февраля 2020

В многоотраслевом конвейере вы можете использовать опцию customWorkspace агентов jenkins

Изменение, которое вы вносите в переменную WORKSPACE env, влияет только на переменную , это не меняет местоположение рабочей области.

pipeline {

    agent {
        node {
            label 'my-node'
            customWorkspace '${WORKSPACE}/app1'
        }
    }

    environment {
        PIPENV_VENV_IN_PROJECT = true
        DEVPI_USER = '\'jenkins_user\''
        DEVPI_PASSWORD = '\'V$5_Z%Bf-:mJ\''
    }
0 голосов
/ 24 февраля 2020

Плагин git позволяет определять разреженные пути оформления заказа . Вы можете использовать это для ограничения каталогов в вашем клоне.

0 голосов
/ 20 февраля 2020

Используйте команду dir для изменения каталога, например

stage('Build Environment') {
   steps {
      dir("app1"){
         sh 'docker build -t app-builder .'
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...