Reusable Github workflow
- 異なるリポジトリでの共通のworkflow管理を簡略化するために、本リポジトリのymlファイルを参照してworkflowを流すことを試しています。
- このリポジトリでは
flake8によるコードチェックを異なるPythonバージョンで実行させるActionと、このページの上のほうにあるBYOBバッジ(flake8/passingのバッジ)を生成するActionを走らせるサンプルを公開しています。 同じリポジトリ内では正しく動作することを確認しておりますが、別リポジトリからの実行は確認できておりません。- BYOBバッジの設置についてはこの
README.mdのソースを参照してください。  
| ファイル | 内容 | Workflow |
|---|---|---|
.github\workflows\call_flake8.yml |
呼び出す側のymlファイル | このファイルを呼び出す側のリポジトリに設置する。./github/workflows/の下に。呼び出すテスト内容に応じて書き換える。 |
.github\actions\create_env_cache\action.yml |
Actionの設定ファイル | .github\actions\create_env_cache\以下に配置してください。Actionsの実行を高速化するためキャッシュを生成します。 |
| 以下、テスト内容に応じて使い分ける | ||
.github\workflows\re_flake8.yml |
呼び出されるymlファイル | push時にいくつかのPythonバージョンでflake8テストを実行。リポジトリ内すべての*.pyファイルが対象。テスト状況をREADMEのBYOBバッジで表示する。 |
.github\workflows\re_flake8_pytest.yml |
呼び出されるymlファイル | トリガされると、flake8, pytest を実行。リポジトリ内すべての*.pyファイルが対象。テスト状況をREADMEのBYOBバッジで表示する。 |
-
呼び出し側リポジトリの一番上の階層に
requirements.txtを置いてください。Actionsの実行に必要です。仮想環境を使われている方は問題ないと思いますが、仮想環境を使わずに開発されている場合でいろいろインストールしているとActionsの実行に時間がかかる場合があります。 -
呼び出し側リポジトリの[Setting]-[Actions]-[General]の設定で[Workflow permissions]を確認してください。Read and write permissionsにチェックしているか確認してください。この設定がされていないとActionがうまく動きません。
-
Read and write permissionsを設定してもダメな場合は、同じ[General]の設定の[Actions permissions]を確認してください。Allow all actions and reusable workflowsを選択してください。デフォルトではDisable actionsになっているかもしれません。
| date | change |
|---|---|
| 2024/12/29 | Python 3.11.11, 3.12.8, 3.13.1でflake8テストするように変更しました。Linux/Unix向けのStable Releasesのバージョンに合わせています。 |
| 2024/12/31 | flake8とpytestを実行するための.github\workflows\re_flake8_pytest.ymlを追加しました。 |
