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 サイト更新

本質はここ

これ全部まとめると、「人がやってた日次作業を完全に消す仕組み」です。

  • 記事を書く
  • データを集める
  • 更新する

これが全部「イベント駆動」になります。

学習教材として使うなら、いきなり全部やらせると無理なので、この順番が「折れない設計」になります。

  1. Pythonで1ファイル実行
  2. GitHub Actionsで動かす
  3. CSV生成(成果が見える)
  4. WordPress投稿(現実感)
  5. サイト更新(完成体験)

関連記事

ブログ

BLOG

PAGE TOP