我正在尝试构建一个工作流,以便在我的仓库中构建包,并将其push
到GitHub仓库。
我在作业矩阵中使用了:os: [ubuntu-20.04, windows-2019, macos-11]
,这是工作流的最后一部分(使用actions/checkout@v3
检出repo):
- name: Upload
run: |
git config --global user.email "user@gmail.com"
git config --global user.name "user"
git add .
git commit -m "Build"
git push
我想到一个问题:假设Ubuntu上的构建首先完成,然后它进入Upload
步骤,将构建的文件上传到仓库,另一台机器(比如Windows)完成了它的构建,当它尝试运行git push
时,仓库不会出现更新错误吗?
我该怎么补救呢?
2条答案
按热度按时间h7wcgrx31#
如果我理解正确的话,你有3个任务(每个操作系统一个)来构建你的项目,并将构建输出推回repo。repo可能不是存储构建输出的最佳位置,但如果这是你需要的方式,我会做以下事情:
1.不是在每个矩阵作业中推送到repo,而是使用actions/upload-artifact上传工件。
RUNNER_OS
环境变量来实现。1.添加一个等待所有3个矩阵作业完成的附加作业。
eyh26e7m2#
在push命令之前添加git远程源
git远程添加原点https://github.com/{username}/{repository-name} .git