GitHub Actionsって何ができる?Node/Pythonと組み合わせてできること
この記事でわかること
- GitHub Actionsが嬉しい理由
- 構造のイメージ
- いちばんシンプルな例(Python)
- Node.jsの場合も同じ
- 本質はここ
- それぞれ「何が起きてるのか」をもう少し具体的に
「Node/Python + GitHub Actionsって何ができるの?」という質問をよくもらいます。
ひと言でいうと、ローカルで書いたコードを、GitHubが自動で実行してくれる仕組みです。
GitHub Actionsが嬉しい理由
Node/Python単体でも、こんなことができます。
- APIを叩く
- データを処理する
- Webスクレイピング
- バッチ処理
でもそこにGitHub Actionsを足すと、「pushしたら勝手に動く」ようになります。
たとえば:
- コードをpushしたら自動でテスト実行
- 毎朝6時にPythonスクリプトを動かす
- データを収集してCSVを生成
- WordPressに記事を自動投稿
- Markdownをビルドしてサイトを更新
構造のイメージ
GitHub(コード置き場)
↓ push / schedule
GitHub Actions(自動実行エンジン)
↓
Node / Python 実行
↓
結果(保存 / 投稿 / API送信)
いちばんシンプルな例(Python)
name: run python
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: setup python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: run script
run: python main.py
Node.jsの場合も同じ
- uses: actions/setup-node@v3
with:
node-version: 18
- run: node index.js
本質はここ
GitHub Actionsは、サーバーを持たずにコードを動かす仕組みです。
レンタルサーバーを契約しなくても、定期実行・自動処理・CI/CDがGitHub上で完結します。
「学習→自動化→発信」のパイプラインを組むときに、中核になってくるエンジンだと思っています。
それぞれ「何が起きてるのか」をもう少し具体的に
① 毎日朝6時にPythonスクリプト実行
サーバーがなくても「時間で起動するバッチ処理」ができます。
on:
schedule:
- cron: "0 21 * * *" # UTCなので日本時間6:00
※日本時間 = UTC+9なので21時に設定します。
Pythonでやることの例:
- 天気データ取得
- 為替レート取得
- RSS収集
- AIで要約生成
イメージは「毎朝勝手に起きて仕事するプログラム」です。
② データ収集してCSV生成
Web/APIからデータを取ってファイル化します。
import csv
import requests
data = requests.get("https://api.example.com/data").json()
with open("output.csv", "w") as f:
writer = csv.writer(f)
writer.writerow(["name", "value"])
for item in data:
writer.writerow([item["name"], item["value"]])
実行後にCSVをリポジトリにコミットしておくこともできます。
- name: commit csv
run: |
git add output.csv
git commit -m "update csv"
git push
イメージは「毎日更新されるデータ倉庫」です。
③ WordPressに記事を自動投稿
PythonがWordPress REST APIを叩くだけです。
流れ:Markdown or テキスト生成 → AIで記事作成 → WordPress REST APIに送信
import requests
url = "https://example.com/wp-json/wp/v2/posts"
data = {
"title": "自動投稿テスト",
"content": "これはGitHub Actionsから投稿されています",
"status": "publish"
}
res = requests.post(url, json=data, auth=("user", "app-password"))
print(res.status_code)
イメージは「ブログ運営をプログラム化」です。
④ Markdownをビルドしてサイト更新
GitHub上の .md をHTMLに変換してWeb公開します。
よくある構成:Gatsby / Next.js / Hugo / Docusaurus
- name: build site
run: npm run build
- name: deploy
run: npm run deploy
イメージは「記事を書いたらサイトが勝手に更新される」です。
全部つなげるとこうなる
毎朝6時
↓
GitHub Actions起動
↓
Python実行
↓
データ収集
↓
CSV生成 or Markdown生成
↓
AIで記事化
↓
WordPress投稿 or サイト更新
本質はここ
これ全部まとめると、「人がやってた日次作業を完全に消す仕組み」です。
- 記事を書く
- データを集める
- 更新する
これが全部「イベント駆動」になります。
学習教材として使うなら、いきなり全部やらせると無理なので、この順番が「折れない設計」になります。
- Pythonで1ファイル実行
- GitHub Actionsで動かす
- CSV生成(成果が見える)
- WordPress投稿(現実感)
- サイト更新(完成体験)
