はじめに #
GitHub Actionsでリポジトリ内のPythonスクリプトを自動実行する方法をまとめた。
GitHubにはあらかじめ設定しておいた処理を自動実行するGitHub Actionsという機能がある。設定方法の概要は以下の記事を参照。 GitHub Actionsに入門する – Helve Tech Blog
この記事では以下について述べる。
- GitHub ActionsでPythonスクリプトを実行する方法
- GitHub Actions実行環境にPythonライブラリをインストールする方法
ファイルの準備 #
主な手順は次の通り。
- 実行するPythonスクリプトを作成
- 必要なPythonライブラリの設定ファイル (requirements.txt) を作成
- GitHub Actionsの設定ファイル (YAML) を作成
以下、順に解説し、最後にPythonスクリプトを実行できたことを確認する。
Pythonスクリプトの作成 #
まず、GitHub上に空のリポジトリを作成し、ローカルにcloneする。
この状態で、リポジトリのルートディレクトリに次のPythonスクリプトpython-sample.py
を作成する。
import numpy as np
a = np.array([1, 2])
b = np.array([3, 4])
print(a + b)
ちなみに、実行結果は以下の通りになる。
[4 6]
Pythonライブラリ設定ファイルの作成 #
Python標準以外のライブラリを使用したい場合には、設定ファイル (requirements.txt) を作成する。
ここではNumPyをインストールするため、リポジトリのルートディレクトリに以下のrequirements.txt
を作成する。
numpy >= 1.2
ちなみにrequirements.txt
を作成しないと実行環境にNumPyがインストールされないため、GitHub Actions実行時に以下のエラーが発生する。
Run python python-sample.py
python python-sample.py
shell: /usr/bin/bash -e {0}
env:
pythonLocation: /opt/hostedtoolcache/Python/3.8.10/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.10/x64/lib
Traceback (most recent call last):
File "python-sample.py", line 1, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
Error: Process completed with exit code 1.
GitHub Actions設定ファイルの作成 #
最後に、GitHub Actions設定ファイルを作成する。
リポジトリに/.github/workflows/
というフォルダを作成し、次のgha-sample.yml
というYAML形式のファイルを置く。
name: Action Sample
on:
push:
branches:
- master
workflow_dispatch:
jobs:
numpy-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
architecture: 'x64'
- name: Get Python version
run: python -V
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run Python
run: python python-sample.py
この設定ファイルはpython-sample.py
を実行するものである。
トリガーイベントは2つあり、masterブランチへのpushと、GitHub上からの手動実行 (workflow_dispatch
) である。
uses: actions/setup-python@v2
でPython環境を指定する。
python-version: '3.8'
でバージョンを指定している。
architecture: 'x64'
でアーキテクチャを指定する(x64とx86が指定可能。デフォルトはx64)。
以下はPythonのバージョンを表示するだけなので、省略してよい。
- name: Get Python version
run: python -V
GitHub Actionsを実行する #
作成したファイルをGitHubにpushすると、GitHub Actionsに設定したPythonスクリプトが実行される。(上記のファイルではpushがトリガーイベントになっているため、このpushで実行される)。
$ git add .github/workflows/sample.yml
$ git commit -m "Add GitHub Actions sample."
$ git push
GitHub Actions実行結果の確認 #
GitHubのリポジトリの画面を開き、“Actions"タブで実行結果を確認できる。
画像下部の"Run Python"で実行結果が[4 6]
となっており、スクリプトを実行できている。
まとめ #
GitHub ActionsでPythonスクリプトを実行した。
requirements.txt
を用意することで、標準以外のライブラリも使用できる。
参考 #
GitHub Actions設定ファイルの詳細は以下の記事を参照。 GitHub Actionsに入門する – Helve Tech Blog