fkubota / Carrier-Owl

arxiv--> DeepL --> Slack/LINE
MIT License
327 stars 356 forks source link

GitHub Actions による bot の定期実行機能の追加 #11

Closed hppRC closed 3 years ago

hppRC commented 3 years ago

Summary

Details

Poetry

Poetry は requirements.txt ではなく、pyproject.toml というファイルに package を追加していくことで、それらの package のみに依存した poetry が用意する仮想環境内で Python を実行できるツールです。 requirements.txt では難しい厳密な依存関係管理を可能にします。 また、これによって GitHub Actions のような自分の開発環境と異なる環境でも、できるだけ同じように動作してくれることを期待します。

GitHub Actions

GitHub Actions は GitHub が用意する CI/CD 環境です。.github/workflows ディレクトリに yaml ファイルを書くことで、種々の操作を実行することができます。今回はとりあえず動作環境に ubuntu を指定しておきました。 GitHub Actions ではいろいろなタイミングで定義した workflow を動作させることができますが、 cron によって定期的に実行することもできます。 今回追加した設定ファイルの on -> schedule -> cron に書いてあるものがその設定になります。

GitHub Actions は以前までこの PR のようなサーバレスコンピューティング目的の利用を禁止していましたが、今年の夏ほどからその条項が削除され、軽微な用途であれば使用できるようになりました。 あまりに重たい処理をすると利用停止などされそうなので気をつけた方がいいと思いますが、bot の定期実行程度なら許容範囲内かと思われます。

Requirements

GitHub の該当リポジトリの settings タブから secrets に移動し、SLACK_ID という名前で slack の incoming webhook の URL を登録してください。GitHub Actions の workflow ファイル内で、secrets.SLACK_ID という名前で参照しています。 これを環境変数に設定することで、src/carrier-owl.py の方で環境変数として参照できるようになります。

hppRC commented 3 years ago

おそらくですが リポジトリの設定から GitHub Actions 用の設定をしないと動かないので、それもしていただけると良いと思います!