我的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中的这些命令来确认我在master上并且已经更新了master分支,然后才运行测试:
pipeline {
stage {
steps {
checkout scm
sh 'git checkout master'
sh 'git pull'`enter code here`
sh 'npm i'
sh 'npm run test:single rest'
}
}
}
我的问题是,当我从dockerfile本身进行git clone时,它已经与docker映像一起获得了工作区,因此我是否必须结帐scm和git checkout master-它不是自动在master上吗?
我不想依靠jenkins gui进行piplelineSCM的结帐步骤
答案 0 :(得分:1)
通过这一行,您可以使用git和perl命令(任何地方都可以使用perl)在任何bash中获得分支。
#outputs: master
git status -b --porcelain | perl -ne 'print $1 if /## (\w+)/'
此行可以集成到其他脚本中,因为它仅输出分支名称。克隆后运行它,或仅执行git status
以显示人类可读信息。
答案 1 :(得分:0)
Jenkins定义了一个GIT_BRANCH环境变量。您可以添加此步骤进行检查:
sh "echo ${env.GIT_BRANCH}"