我正在尝试设置jenkins-workflow来进行集成测试.我们的集成测试工作方式如下:
有人LibraryA在git的功能分支中进行了更改.我们希望詹金斯在其上运行的特性分支的代码单元测试,那么我们想从这个特性分支安装代码转换成client1和client2(这是用户LibraryA),并运行他们的测试.
我能够设置一个工作流来完成所有工作,除了得到正确的提交到功能分支LibraryA.相反,我的设置只是从一些(看似随机的)分支提取LibraryA.
我们有许多功能分支,因此在工作流程设置中对特定分支进行硬编码是不合适的.似乎应该有一些方法来获取触发工作流作业的提交的哈希值(即使使用SCM轮询).
我的设置如下:
currentBuild.setDisplayName("#" + env.BUILD_NUMBER)
node {
git credentialsId: '033df7f1-7752-46bd-903d-8a70e613eed0', url: 'git@github.com:mycompany/myrepo.git'
sh '''
echo `git rev-parse HEAD` > libraryA_version.txt
sudo docker run --rm=true -e LANG=en_US.UTF-8 -a stdout -i -t mycompany/libraryA run_tests
'''
archive 'libraryA_version.txt'
}
def integration_jobs = [:]
integration_jobs[0]={
node{
ws {
unarchive mapping: ['libraryA_version.txt':'.']
sh 'sudo docker run -t --rm mycompany/client1:v1 bash run_tests.sh "`cat libraryA_version.txt`"'
}
}
}
integration_jobs[1] = {
node{ …Run Code Online (Sandbox Code Playgroud)