TravisCIを使用して、タグ付きコミットのバージョン番号を付けたPythonパッケージをPyPIに自動的にリリースする
この記事では、TravisCIを使用して、タグ付きコミットのバージョン番号を付けたPythonパッケージをPyPIに自動的にリリースする方法について紹介します。パッケージのバージョンはコミットのタグによって自動的に決定されるため、setup.py
のパッケージのバージョンを書き換える手間を省くことができます。
必要なものは以下の通りです。
- pythonパッケージを含むGitHubリポジトリ
- Travisのコマンドラインツール
- PyPIアカウント
設定ファイルを用意する
まず、Travis CIに何をすべきかを指示するために、リポジトリにTravisの設定ファイル(.travis.yml
)を追加します。以下では、リポジトリをPython 3.6でビルドし、タグ付きコミットでのみデプロイするように設定します。user
にはPyPIのユーザ名を設定しましょう。
language: python
python:
- '3.6'
script: true
deploy:
provider: pypi
user: "Your username"
on:
tags: true
PyPIのパスワードを暗号化して設定ファイルに含める
次に、PyPIのパスワードを暗号化して設定ファイルに追加します。そのためには、Travisのコマンドラインツールを使うことができます。インストールしていない場合は、https://github.com/travis-ci/travis.rbを参考にしてインストールしてください。
まず、設定ファイルを置いてあるディレクトリに移動します。その後、次のコマンドを実行します。your-password-here
はPyPIのパスワードに置き換えてください。
travis encrypt your-password-here --add deploy.password
実行後、暗号化されたパスワードが設定ファイルに含まれていることを確認できます。
language: python
python:
- '3.6'
script: true
deploy:
provider: pypi
user: "Your username"
password:
secure: "Your encrypted password"
on:
tags: true
タグ付きコミットから自動的にパッケージバージョンを設定
最後に、タグ付けされたコミットから自動的にパッケージのバージョンを設定します。こうすることで、パッケージのバージョンをsetup.py
にハードコーディングする必要がなくなります。
パッケージのバージョンをタグから自動的に設定するためにはsetuptools_scm
を使うことができます。まずは、以下のようにしてsetuptools_scm
をインストールします。
pip install setuptools-scm
次に、setup.py
を以下のように変更します。こうすることで、パッケージのバージョンを自動的にタグのバージョンから取得することができます。
from setuptools import setup
setup(
...,
use_scm_version=True,
setup_requires=['setuptools_scm'],
...,
)
これで終わりです。
あとはタグを付けることで、パッケージを自動的にPyPIにリリースすることができます。
以下のリポジトリに設定を書いてあるので参考にしてください。
Author And Source
この問題について(TravisCIを使用して、タグ付きコミットのバージョン番号を付けたPythonパッケージをPyPIに自動的にリリースする), 我々は、より多くの情報をここで見つけました https://qiita.com/Hironsan/items/18d7a4ab0294d64dbc92著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .