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 倍
自託管執行器¶
- 完全免費(不計入分鐘數),只需自行負擔硬體與維護成本。
如何查看用量¶
- 點選右上角頭像 →
Settings - 左側選單選擇
Billing and Licensing - 檢查
Metered usage與Actions usage - In discount 是免費額度
- 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¶
- 在 repo 中選擇
Actions - 點選你的 workflow
- 按下
Run workflow - 稍待片刻即可檢查執行狀況
結語¶
透過 GitHub Actions,你可以自動化重複檢查的開發流程,節省時間、提高效率,讓生活更輕鬆!
Comments
Loading comments…
Leave a Comment