■ はじめに
Github Actions で、以下の関連記事で行ったような
https://dk521123.hatenablog.com/entry/2024/01/22/210831
https://dk521123.hatenablog.com/entry/2024/01/05/000000
Github Actions で脆弱性診断の結果をCSVファイル化して、、、 とかやると、かなり複雑になるので、 以下の関連記事で扱った boto3 で実装したい。
https://dk521123.hatenablog.com/entry/2024/01/31/014010
そこで、今回は、Github Actions で Python を扱う方法について 扱っていく。 なお、Python製のLinterや egg / wheel ファイル作成などの Pythonにまつわる事項については、以下の関連記事を参照のこと
Github Actions ~ Python関連 ~
https://dk521123.hatenablog.com/entry/2022/06/21/143624
目次
【1】Pythonを使うには 1)uses: actions/setup-python@vX を設定する 【2】サンプル 【3】Tips 1)Pythonから値を返すには 2)Pythonに値を渡すには
【1】Pythonを使うには
* 全然簡単にできるので、シェルを使うのが馬鹿らしくなる、、、
1)uses: actions/setup-python@vX を設定する
https://github.com/actions/setup-python
steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.10' - run: python my_script.py
【2】サンプル
.github/workflows/hello.py
import sys def main(args): print(f"Hello, world, [{args[1]}, {args[2]}]") return 123 if __name__ == "__main__": args = sys.argv result = main(args) # return value sys.stdout.write("This is a just test")
.github/workflows/demo.yml
# This is a basic workflow to help you get started with Actions name: Sample on: push: branches: [ "develop" ] jobs: sample: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # ★注目1 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.8' architecture: 'x64' - name: Get Python version run: python -V # ★注目2 - name: python demo run: | result=$(python .github/workflows/hello.py Mike 012345) echo $result
【3】Tips
1)Pythonから値を返すには
* sys.stdout.write を使う
https://docs.python.org/ja/3.8/library/sys.html?highlight=stdout#sys.displayhook
import sys # sys.stdout.write(【返したい値】) sys.stdout.write("This is a just test")
Github actions側
# 【受け取る変数】=$(python 【Pythonファイル】)
result=$(python .github/workflows/hello.py Mike 012345)
2)Pythonに値を渡すには
* sys.argv を使う
import sys args = sys.argv value1 = args[1] value2 = args[2]
Github actions側
# python 【Pythonファイル】 【渡したい値1】 【渡したい値2】... python .github/workflows/hello.py Mike 012345
使用上の注意
* args[0] は、ファイル名(e.g. .github/workflows/hello.py)になる
参考文献
https://docs.github.com/ja/actions/automating-builds-and-tests/building-and-testing-python
https://helve-blog.com/posts/git/github-actions-python/
関連記事
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
Github Actions ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/04/142835
Github Actions ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/06/16/151443
Github Actions ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/12/22/195715
Github Actions ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2023/12/21/155224
Github Actions ~ SQL Linter ~
https://dk521123.hatenablog.com/entry/2024/03/04/180308
Github Actions ~ Python関連 ~
https://dk521123.hatenablog.com/entry/2022/06/21/143624
Github Actions ~ Self-hosted runners / 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/18/204119
Github Actions ~ Self-hosted runners / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2024/02/07/002736
Amazon ECR ~ 脆弱性診断 / Amazon Inspector ~
https://dk521123.hatenablog.com/entry/2024/01/22/210831
Amazon ECR ~ AWS CLI ~
https://dk521123.hatenablog.com/entry/2024/01/05/000000
Amazon ECR ~ boto3 ~
https://dk521123.hatenablog.com/entry/2024/01/31/014010