このプロジェクトは、Pypi標準パッケージを作成するための完全な構造を生成するCookeiecutterテンプレートで構成されています。
このプロジェクトを使用している間、著者、プロジェクトの名前などの入力を提供するように求められます。その結果、完全なファイルとフォルダー構造を取得して、パッケージのコーディングを迅速に開始します。
「FedDit」というプロジェクトを作成したいふりをしましょう。 Cookeiecutterに基づいてこのテンプレートを使用することにより、ビルド可能なPYPIパッケージをすばやくセットアップできるようになります。
まず、cookecutterを取得します。私を信じて、それは素晴らしいです:
$ pipインストールcookecutter
または詩で:
$詩自己追加クッカーを追加します
次に、このリポジトリに対して実行します。
$ cookecutter https://github.com/zhiwei2017/pyckage-cookiecutter
または:
$ Poetry Run cookecutter https://github.com/zhiwei2017/pyckage-cookiecutter
いくつかの値が求められます。それらを提供すると、プロジェクトが作成されます。
警告:この時点の後、「私の素晴らしいプロジェクト」、「ジョン・ドゥー」などを自分の情報に変更します。
自分の希望するプロンプトでプロンプトに答えてください。例えば:
「pyckage-cookiecutter」へのクローニング... リモート:列挙オブジェクト:219、完了。 リモート:オブジェクトのカウント:100%(219/219)、完了。 リモート:オブジェクトの圧縮:100%(123/123)、完了。 リモート:合計219(デルタ83)、181(デルタ69)、パックリューズ0 受信オブジェクト:100%(219/219)、41.09 Kib | 1.71 mib/s、完了。 Deltasの解決:100%(83/83)、完了。 [1/8]プロジェクト名(私の素晴らしいプロジェクト)を選択してください: [2/8]ソースコードをホストするためのプロジェクトURL。 (https://repository-hosting.com/example_project):https://github.com/zhiwei2017/feddit [3/8]著者のフルネーム。 (ジョン・ドゥ):ジョン・ドー [4/8]著者のメールアドレス。 ([email protected]):[email protected] [5/8]短い説明。 (私の素晴らしいプロジェクトを見よ!):偽のReddit API。 [6/8]リリースに使用するセマンティックバージョン。 (0.1.0):0.1.0 [7/8]どのライセンスをプロジェクトに使用しますか? 1-なし 2 -MIT 3-アパッチ 4-2節BSD 5-3節BSD 6 -gpl [1/2/3/4/5/6](1):2から選択します [8/8]どのCI/CDパイプラインを使用する予定ですか? 1-なし 2- github 3 -gitlab 4-ビットバケット [1/2/3/4](1):2から選択します **プロジェクトのreadme.rstのコメントを読んで、CI/CDパイプラインをセットアップし、MakeFileからコマンドを使用する方法を知るようにしてください。**
プロジェクトに参加して、周りを見てみましょう。
$ cd reddit/ $ ls
リポジトリには次の構造が必要です。
reddit ├├。github -githubアクション構成 │└└。。workflow │├│。├。test.yml-糸くずのチェックとテストのためのパイプライン │├│。-release.yml-タグを使用したリリース用のパイプライン phinc.- sphinx.yml- githubページを公開するためのパイプライン docs -sphinxドキュメント │├│。。MakeFile -MakeFileスフィンクスのドキュメントの端末コマンドを定義する huse└││。-ソース - ドキュメントソースフォルダー │├。。 │├。。 │├。。 │├。。 │├│。-conf.py -sphinx構成ファイル │└│。。index.rst ├)reddit │└ク。__init__.py ├├)-テスト - テスト semolling├├。-リソース - テストで使用されるリソース │├││。conftest.py-テスト中のフィクスチャー │└│。└。test_version.py-バージョン情報をテストします。 ├├) ├)ributing.rst-貢献ガイドライン ├)。ライセンス ├├。MakeFile-事前定義された端子コマンド whien ofmanifest.in-コマンド、1行ごとに1つ、setuptoolsにSDISからファイルのセットを追加または削除するように指示する ├├リン大したことは、readme.rst-パッケージ情報 pyproject.tomlをサポートしていないため、flake8の構成。 pyproject.toml-パッケージ構成ファイル
パッケージをPYPIにアップロードするためにCI/CDパイプラインを使用する場合は、セクションCI/CD構成を確認してください。
注記:
このレポは、ホイールパッケージとして構築され、Pypiにアップロードされます。 PIPを介してインストールできます。
$ pipインストールpyckage-cookiecutter
または詩を通して:
$詩自己追加Pyckage-Cookiecutterを追加します
そして、コールで新しいプロジェクトの生成を開始します:
$ pyckage_cookiecutter
または:
$ Poetry Run Pyckage_cookiecutter
残りは、導入されたチュートリアルと同じです。
CI/CDパイプラインは、生成されたプロジェクトで事前に定義されています。ステップが含まれているセクションと、さまざまなプラットフォームでそれらを構成する方法を確認してください。
GitHubアクションのすべての構成ファイルを.github/workflowsフォルダーに見つけることができます。
| 構成ファイル | ステップ | ルールをトリガーします | 必要なCI/CD変数 | CI/CD変数の説明 |
|---|---|---|---|---|
| test.yml | mypyチェック |
| ||
| flake8チェック | ||||
| 盗賊チェック | ||||
| Python 3.8(ubuntu/mac os/windows)でテストする | ||||
| Python 3.9(ubuntu/mac os/windows)でテストする | ||||
| Python 3.10でテストする(ubuntu/mac os/windows) | ||||
| Python 3.11(ubuntu/mac os/windows)でテストする | ||||
| Python 3.12(ubuntu/mac os/windows)でテストする | ||||
| ビルドパッケージをチェックします | ||||
| release.yml | Pypiに展開します | vxx.xx.xxに一致するタグをプッシュします | poetry_pypi_token_pypi | 公式のPypiにパッケージをアップロードするためのトークン。プライベートArtifactoryを使用している場合は、代わりに変数package_index_repository_url、package_index_username、およびpackage_index_passwordを使用してください。 |
| package_index_repository_url | プライベートパッケージインデックスのURL。 | |||
| package_index_username | プライベートパッケージインデックスのユーザー名。 | |||
| package_index_password | プライベートパッケージインデックスのパスワード。 | |||
| Sphinx.yml | githubページを展開します | マスターブランチにプッシュします |
注記:
プロジェクトのgithubページを初めて公開する前に、次の手動でBranch Gh-Pagesを作成してください。
$ gitチェックアウトマスター $ git checkout -b gh -pages $ gitプッシュオリジンGH-pages
ファイル.gitlab-ci.ymlには、gitlab ciのすべての構成が含まれています。
| ステージ | ステップ | ルールをトリガーします | 必要なCI/CD変数 | CI/CD変数の説明 |
|---|---|---|---|---|
| 糸くず | mypyチェック |
| ||
| flake8チェック | ||||
| 盗賊チェック | ||||
| テスト | Python 3.8でテストします | |||
| Python 3.9でテストします | ||||
| Python 3.10でテストします | ||||
| Python 3.11でテストします | ||||
| Python 3.12でテストします | ||||
| 建てる | ビルドパッケージをチェックします | |||
| 展開する | Pypiに展開します | vxx.xx.xxに一致するタグをプッシュします | poetry_pypi_token_pypi | 公式のPypiにパッケージをアップロードするためのトークン。プライベートArtifactoryを使用している場合は、代わりに変数package_index_repository_url、package_index_username、およびpackage_index_passwordを使用してください。 |
| package_index_repository_url | プライベートパッケージインデックスのURL。 | |||
| package_index_username | プライベートパッケージインデックスのユーザー名。 | |||
| package_index_password | プライベートパッケージインデックスのパスワード。 |
設定に移動します。
CI/CDセクションをクリックします。
変数セクションに移動します。
[変数の追加]ボタンをクリックします。
CI/CD変数の名前と値を入力します。
デフォルトでは、保護されたフラグがチェックされます。つまり、追加された変数は保護されたブランチ/タグにのみ使用できます。変数の保護を維持する場合は、WildCards V*を設定に保護されたタグとして追加してください - >リポジトリ- >保護されたタグを追加してください。
または、ボックスを外して、すべてのブランチとタグに変数を使用することもできます。
ファイルbitbucket-pipelines.ymlには、Bitbucketパイプラインのすべての構成が含まれています。
| ステップ | ルールをトリガーします | 必要なCI/CD変数 | CI/CD変数の説明 |
|---|---|---|---|
| mypyチェック |
| ||
| flake8チェック | |||
| 盗賊チェック | |||
| Python 3.8でテストします | |||
| Python 3.9でテストします | |||
| Python 3.10でテストします | |||
| Python 3.11でテストします | |||
| Python 3.12でテストします | |||
| ビルドパッケージをチェックします | |||
| Pypiに展開します | vxx.xx.xxに一致するタグをプッシュします | poetry_pypi_token_pypi | 公式のPypiにパッケージをアップロードするためのトークン。プライベートArtifactoryを使用している場合は、代わりに変数package_index_repository_url、package_index_username、およびpackage_index_passwordを使用してください。 |
| package_index_repository_url | プライベートパッケージインデックスのURL。 | ||
| package_index_username | プライベートパッケージインデックスのユーザー名。 | ||
| package_index_password | プライベートパッケージインデックスのパスワード。 |
リポジトリ設定に移動します。
リポジトリ変数をクリックします。
[追加]ボタンをクリックします。
CI/CD変数の名前と値を入力します。
初めて新しい変数を追加する前に、パイプラインを有効にする必要があります。
| 指示 | 説明 |
|---|---|
| クリーン | 自動生成フォルダーとアーティファクトを削除します。 |
| クリーンパイク | Pythonアーティファクトを削除します。 |
| クリーンビルド | ビルドアーティファクトを削除します。 |
| 盗賊 | Banditセキュリティ分析を実行します。 |
| マイピー | mypyタイプのチェックを実行します。 |
| flake8 | flake8の糸くずを実行します。 |
| インストール | すべての依存関係とパッケージ自体をインストールします。 |
| テスト | テストを実行し、カバレッジレポートを生成します。 |
| 建てる | ホイールパッケージを構築します。 |
| 公開 | 構築されたホイールパッケージを公開します。 |
素晴らしいConvributing.RSTテンプレートのプロジェクトCookEiCutter-Pypackageに感謝します。