GitHub ActionsでPythonプログラムの実行
Posted On 2025-01-17
GitHub Actionsを使い、requirements.txtで依存パッケージをインストールしてからPythonスクリプトを実行するワークフロー設定例。 無料枠があるため手軽に試すことが可能で、ネットワークアクセスも含む動作確認ができる。
目次
はじめに
- GitHub ActionsでリポジトリにあるPythonスクリプトを動かしたい
- requirements.txtで必要なライブラリをインストールして実行する例
- よくやり方忘れるのでメモ
ディレクトリ構成
your-repository/
├── .github/
│ └── workflows/
│ └── run-python.yaml # GitHub Actionsのワークフローファイル
├── sample_script.py # 実行したいPythonスクリプト
├── requirements.txt # 依存パッケージリスト(必要に応じて)
├── README.md # リポジトリの説明ファイル
└── その他のソースコードやファイル
GitHub Actionsのメイン(.github/workflows/run-python.yaml)
name: Run Python Script
on:
# プルリクエストが作成されたとき、または更新されたときにトリガー
pull_request:
types: [opened, synchronize, reopened]
# メインブランチにPushされたときも発火
push:
branches:
- master
jobs:
execute-python:
runs-on: ubuntu-latest
steps:
# リポジトリのソースコードをチェックアウト
- name: Checkout repository
uses: actions/checkout@v4
# 必要なPythonのバージョンをセットアップ
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12' # バージョンを指定
# 必要に応じて依存関係をインストール
- name: Install dependencies
if: ${{ hashFiles('requirements.txt') != '' }}
run: |
pip install --upgrade pip
pip install -r requirements.txt
# Pythonスクリプトを実行
- name: Run Python script
run: |
python sample_script.py
- ファイルがあったら実行したいときは、
hashFiles
の値を評価すれば良いようだ
結果
Pushすると、ライブラリがインストールされ、コードが実行されている(requests.getの結果が表示されている)
メインコード
sample_scripts.py
example.comをrequestsで読んでくるだけ
import requests
def main():
# 取得したい URL を指定します
url = "https://example.com"
try:
# GET リクエストを送信してレスポンスを取得
response = requests.get(url)
# ステータスコードが 200 (成功)の場合
if response.status_code == 200:
# レスポンスの内容をテキスト形式で表示
print(response.text)
else:
print(f"リクエストに失敗しました。ステータスコード: {response.status_code}")
except requests.exceptions.RequestException as e:
# ネットワークエラー等の例外処理
print(f"リクエスト中にエラーが発生しました: {e}")
if __name__ == "__main__":
main()
requrements.txt
requestsを入れてみた
requests
料金
無料枠結構でかいのでいろいろぐへぐへできそう。
Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内
技術書コーナー
北海道の駅巡りコーナー