我正在执行Jenkins作业,该作业将一个分支合并到另一个分支,然后在创建的提交上运行构建。我收到错误消息:
+ git config --global user.email myemail@gmail.com
error: could not lock config file //.gitconfig: Permission denied
+ git config --global user.name 'Merge before testing'
error: could not lock config file //.gitconfig: Permission denied
+ git merge origin/branchToTest
准备合并时。
您会在错误消息中看到,在第一个斜杠之后没有文件夹,该文件夹应该是用户名,在我的情况下是/jenkins/.gitconfig
当我插入行whoami
时,出现错误:whoami: cannot find name for user ID 1000
当我运行docker exec containerName whoami
时,它返回jenkins
我确保创建图像时用户jenkins
存在。这是dockerfile的一部分:
FROM jenkins/jenkins:lts
ENV TZ=Asia/Tokyo
USER jenkins
RUN <user stuff>
USER root
RUN <root stuff>
USER jenkins
这是我的Jenkinsfile
的相关部分:
git checkout -B origin/$BASE_BRANCH
git config --global user.email "email@domain"
git config --global user.name "Merge before testing"
git merge origin/$SOURCE_BRANCH
此外,我非常确定合并失败,因为使用git rev-parse --verify HEAD
检索的git哈希在git merge
之前和之后都不会改变
最后,我想要的是能够使用git merge
将$ SOURCE_BRANCH合并到$ BASE_BRANCH中,测试合并提交,然后还原合并提交。为此,不能使用描述性管道和插件,因为我想尽可能地将所有步骤都放在代码中。