LoginSignup
0
0

【Python】 GitHubレポジトリのバージョン更新に合わせて自動的にPyPIのバージョンも更新する

Posted at

はじめに

自作ライブラリをpipコマンドでインストールできるようにするには、PyPIに投稿しないといけません。

手動で自作ライブラリをPyPIに上げる手順は、下記の通りですね。
PyPIパッケージ公開手順

新規投稿だけではなく、バージョンアップの手順も同様です。
しかし、メンドウですよね。

我々は自動化の王、自動化キングなので、GitHubを更新した時点で、PyPIへの更新も同時にやってしうまうように、GitHubをいじりましょう。

結果

この手順だけで PyPIの更新ができるようになります。

すなわち、Release を登録する だけで 、連携してPyPIへ投稿されます。
294690975-1bc79398-5458-4a8b-b03f-26efd51917fe.png

設定手順

GitHub Actions登録

.github/workflows/python-publish.ymlとして下記をコピペ

.github/workflows/python-publish.yml
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package

on:
  release:
    types: [published]

permissions:
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v3
        with:
          python-version: "3.12"
      - name: Build package
        run: |
          python -m pip install --upgrade pip
          pip install setuptools wheel
          python setup.py sdist bdist_wheel
      - name: Publish package
        run: |
          pip install twine
          python -m twine upload dist/*
        env:
          TWINE_USERNAME: __token__
          TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}

©GitHub

PyPIトークン登録

PyPIアカウント設定ページへ
image.png

追加してください
image.png

トークンをコピー

GitHubのレポジトリページへ

Settings -> Secrets and variables -> Actionsから緑の"New repository secret"ボタン
image.png

NameをPYPI_API_TOKENとして(他の名前不可)、トークンをコピペ
image.png

完成です

更新手順

  • レポジトリページから、Releasesページへ
    image.png

  • Draft a new release
    image.png

  • 新しいバージョンのタグを作り
    image.png

  • 本番ブランチを指定
    image.png

  • 後は最下部の"Publish release"ボタンで発行です
    image.png

同時に、PyPIへの更新も自動で行われます

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0