也许是一个广泛的问题,但是我认为这与使用github并可以大大减少其工作量的python软件包的任何维护者都有关,因此希望它能发挥作用。
本质上,在我看来:
所以我的问题是:
我可以想到各种解决方案,例如中间s3存储桶,但是在pypi和/或github动作在这方面如何工作方面,我可能犯了很大的错误,因此我可能会遇到一个非常简单的问题。
如我的评论中所述,这是运行并行构建但只有一次上传的一种可能方法:
name: 'Aggregation'
on: [push]
env:
ARTIFACT: artifact.bin
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- windows-latest
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v2
- shell: bash
run: |
echo "Run your build command here"
echo "This is a fake ${{ matrix.os }} build artifact" >$ARTIFACT
- uses: actions/upload-artifact@v2
with:
name: build-${{ matrix.os }}-${{ github.sha }}
path: ${{ env.ARTIFACT }}
publish:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/download-artifact@v2
with:
path: artifacts
- shell: bash
working-directory: artifacts
run: |
for i in $( ls ); do
cat $i/$ARTIFACT
done
每个矩阵作业都会构建并将其自己的工件上传到github。在下载所有工件并在其上进行迭代之前,发布作业将等待所有先前的作业完成。另一个好处是,如果任何矩阵作业失败,则发布将失败。当然,只有在所有操作系统上的构建步骤和命令都相同的情况下,这才是简单的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句