GitHub Side Project

Github Action Introduction

Github Action Introduction

GitHub Actions 簡介

GitHub Actions 是 GitHub 提供的強大 持續整合 (CI)持續交付 (CD) 平台,能夠讓開發者在 GitHub 儲存庫中輕鬆自動化軟體開發的各個環節。


工作流程的觸發方式

GitHub Actions 支援多種觸發方式:

  • 程式碼提交 (Push):當新程式碼推送到特定分支。
  • 建立拉取請求 (Pull Request):常用於自動執行測試。
  • 建立新議題 (Issue):可自動分配標籤或通知。
  • 排程運行 (Schedule):定時任務(如每天午夜)。
  • 手動觸發 (Workflow Dispatch):從 GitHub 介面手動啟動流程。

所有自動化流程透過簡潔的 YAML 檔案 管理,定義每個步驟與條件。


執行環境

GitHub 託管虛擬機 (VM)

  • 免維護:GitHub 會處理基礎設施。
  • 多平台支援:Linux、macOS、Windows(使用 runs-on: 指定)。
  • 預裝工具:如 Node.js、Python、Java、.NET、Git、Docker 等。

Docker 容器

  • 確保環境一致性與隔離性。
  • 可指定特定步驟於容器中執行。

運行費用與免費額度

公共儲存庫

  • 標準執行器免費,無分鐘數限制。

私人儲存庫

方案類型 免費分鐘數 免費儲存空間
免費帳號 2,000 分鐘/月 500 MB
專業版/團隊版 更高額度 更多空間

不同平台倍率

  • Linux:1 倍
  • Windows:2 倍
  • macOS:10 倍

自託管執行器

  • 完全免費(不計入分鐘數),只需自行負擔硬體與維護成本。

如何查看用量

  1. 點選右上角頭像 → Settings
  2. 左側選單選擇 Billing and Licensing
  3. 檢查 Metered usageActions usage
  4. In discount 是免費額度
  5. Billable usage 才是真正計費項目

架設你的 GitHub Action

YAML 檔案位置

my-awesome-project/
├── .github/
│   └── workflows/
│       └── your-workflow-name.yml
└── (其他專案檔案)

YAML 範例

name: Automated Content Generation and Site Build

on:
  push:
    branches: [main]
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *'

permissions:
  contents: write

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout source code
        uses: actions/checkout@v4

      - name: Set up Python environment
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install Python dependencies
        run: |
          pip install Pillow PyYAML bs4 requests

      - name: Run content generation script
        run: |
          python generate_content.py

手動運行 Action

  1. 在 repo 中選擇 Actions
  2. 點選你的 workflow
  3. 按下 Run workflow
  4. 稍待片刻即可檢查執行狀況

結語

透過 GitHub Actions,你可以自動化重複檢查的開發流程,節省時間、提高效率,讓生活更輕鬆!

Comments

Loading comments…

Leave a Comment