gpt4 book ai didi

python - 如何使用 github 操作发布 pip 轮子

转载 作者:行者123 更新时间:2023-12-04 13:10:05 27 4
gpt4 key购买 nike

也许是一个广泛的问题,但我认为这与任何使用 github 并可以显着减少他们的工作量的 python 包维护者相关,所以希望这些权力能够让它站住脚。
基本上,在我看来:

  • 为 python 构建和发布轮子很好,但有时它们必须特定于操作系统才能正常工作(即构建在类似的操作系统/环境上)
  • Github 操作提供了广泛的操作系统来运行作业(目前是免费的),因此它可用于构建这些轮子
  • Github Action 可以很容易地通过 twine 发布 sidst

  • 所以我的问题是:
  • 有没有一种直接的方法来为一堆环境构建轮子(例如,在 github 操作中使用 OS/env 矩阵)然后通过 github 操作发布它们。通过将它们聚合在一个地方然后运行一些 twine 命令?问题似乎是无法通过 github 操作在不同的 envs/vms 设置之间进行通信。

  • 我可以想到各种解决方案,例如一个中间的 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。
    在下载所有工件并在本例中迭代它们之前,发布作业会等待所有先前的作业完成。另一个好处是,如果任何矩阵作业失败,发布都会失败。当然,这只有在所有操作系统上的构建步骤和命令都相同时才很简单。
    以下是部分测试运行截图:
    workflow run
    产生的工件:
    artifacts
    发布作业的输出:
    output

    关于python - 如何使用 github 操作发布 pip 轮子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66369434/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com