GitHub工作流在'push'之前全部完成

a7qyws3x  于 2023-01-11  发布在  Git
关注(0)|答案(2)|浏览(164)

我正在尝试构建一个工作流,以便在我的仓库中构建包,并将其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时,仓库不会出现更新错误吗?
我该怎么补救呢?

h7wcgrx3

h7wcgrx31#

如果我理解正确的话,你有3个任务(每个操作系统一个)来构建你的项目,并将构建输出推回repo。repo可能不是存储构建输出的最佳位置,但如果这是你需要的方式,我会做以下事情:
1.不是在每个矩阵作业中推送到repo,而是使用actions/upload-artifact上传工件。

  • 确保在工件名称中使用OS名称,以便区分这3个对象,这可以通过RUNNER_OS环境变量来实现。

1.添加一个等待所有3个矩阵作业完成的附加作业。

eyh26e7m

eyh26e7m2#

在push命令之前添加git远程源

git远程添加原点https://github.com/{username}/{repository-name} .git

相关问题