как я могу узнать, на какой ветке git я работаю, когда делаю git clone из dockerfile - PullRequest
0 голосов
/ 28 сентября 2018

Мой dockerfile:

WORKDIR /var/jenkins_home/workspace/pipeline@script/xxxxx
RUN apt-get -y install git
RUN git clone https://Team:1234@bitbucket.org/MinoxTeam/xxxxx.git /xxxxx && \
    cd /xxxxx

Я использую эти команды из jenkinsfile, чтобы подтвердить, что я нахожусь на главной и обновил основную ветку, и только после этого я запускаю тесты:

pipeline {
 stage {
  steps {
    checkout scm 
    sh 'git checkout master'
    sh 'git pull'`enter code here`
    sh 'npm i'
    sh 'npm run test:single rest'
  }
 }
}

мой вопрос: когда я делаю git clone из самого моего dockerfile, он уже получает рабочее пространство вместе с образом докера, так что мне нужно делать checkout scm и git checkout master - это не автоматически на master?

Я не хочу зависеть от графического интерфейса Дженкинса для этапа оформления заказа от piplelineSCM

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Дженкинс определяет переменную среды GIT_BRANCH.Вы можете добавить этот шаг, чтобы проверить это:

sh "echo ${env.GIT_BRANCH}"
0 голосов
/ 28 сентября 2018

С помощью этой строки вы можете получить ветку в любом bash с помощью доступных команд git и perl (perl обычно везде).

#outputs: master
git status -b --porcelain | perl -ne 'print $1 if /## (\w+)/'

Эта строка может быть интегрирована в другие скрипты, так как выводит тольконазвание филиала.Запустите его после клонирования или выполните просто git status, чтобы отобразить читабельную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...