以下の内容はhttps://nikkie-ftnext.hatenablog.com/entry/maturin-with-upload-and-download-artifact-github-actionsより取得しました。


GitHub Actions から PyPI へ Rust 製パッケージを公開するために、2つのAction upload-artifact と download-artifact を理解する

はじめに

七尾百合子さん、お誕生日 181日目 おめでとうございます! nikkieです。

初見の GitHub Actions 2つを素振りします。

目次

Rust プログラムから作ったバイナリを PyPI で公開するには複数ジョブでのビルドが必要

現在直面しています

突破口を知りたく、Rust を使った Python パッケージの GitHub Actions を覗きます

upload-artifactdownload-artifact という2つの GitHub Actions を使っていました。
この2つの Action は初見なので、まずはこれらを使って sampleproject-rs のパッケージ公開 Action を書き直してみます。
Ubuntu 以外のビルド環境のサポートは今回の記事では扱いません

結論:sdist と Ubuntu 向けバイナリをリリース するAction

3つのジョブからなります

「ワークフロー成果物を使ったデータの格納と共有」

Rust プログラムから作ったバイナリを Python パッケージにする場合、1つのジョブ(=ビルド環境)では不十分です。
ジョブそれぞれの成果物を、ワークフロー内のジョブ間で共有する必要があります。
それを upload-artifact と download-artifact で実現します。

ジョブの path にある成果物を name でアップロード。
pypi-fies-というプレフィックスを付けています。

今回は pattern に該当する成果物を path にダウンロード。
プレフィックスを活用します。

merge-multiple: true により、path のディレクトリに sdist も wheel も配置できています 。

If true, the downloaded artifacts will be in the same directory specified by path.

こうして PyPI にアップロードしたパッケージは、引き続き GitHub Codespaces (Ubuntu 環境)で実行できています

執筆していて download-artifact の v5 を試す余地に気づきました。
→バージョンを上げても動き続けました

終わりに

Rust プログラムから作ったバイナリを PyPI で公開するには、環境ごとのビルドが必要です。
それに使う GitHub Actions の upload-artifact と download-artifact について理解を深めました。
Python 製パッケージ開発では知ることのなかった Action でした。

次はいよいよ、環境ごとのビルドです




以上の内容はhttps://nikkie-ftnext.hatenablog.com/entry/maturin-with-upload-and-download-artifact-github-actionsより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14