Calculate Version Action
這是一個自動計算語義化版本號的 GitHub Action,支援自定義版本遞增規則。
功能特色
- 🔄 自動從 Gitea releases 獲取最新版本
- 📈 支援自定義版本遞增規則
- 🎯 可配置的版本號上限
- 🔧 完全可重用的 composite action
輸入參數
| 參數名稱 | 必要 | 預設值 | 描述 |
|---|---|---|---|
gitea-server |
✅ | - | Gitea 伺服器 URL |
repository |
✅ | - | 儲存庫名稱 (格式: owner/repo) |
token |
✅ | - | Gitea API Token |
initial-version |
❌ | 0.0.1 |
初始版本號 |
patch-limit |
❌ | 10 |
小版號上限 (達到時進位中版號) |
minor-limit |
❌ | 10 |
中版號上限 (達到時進位大版號) |
輸出參數
| 參數名稱 | 描述 |
|---|---|
version |
計算出的新版本號 |
previous-version |
上一個版本號 |
使用範例
基本用法
- name: 計算版本號
id: version
uses: ./.gitea/actions/calculate-version
with:
gitea-server: ${{ gitea.server_url }}
repository: ${{ gitea.repository }}
token: ${{ secrets.GITEA_TOKEN }}
自定義設定
- name: 計算版本號
id: version
uses: ./.gitea/actions/calculate-version
with:
gitea-server: ${{ gitea.server_url }}
repository: ${{ gitea.repository }}
token: ${{ secrets.GITEA_TOKEN }}
initial-version: '1.0.0'
patch-limit: '5' # 小版號到 4 時進位
minor-limit: '5' # 中版號到 4 時進位
使用輸出
- name: 顯示版本資訊
run: |
echo "上一版本: ${{ steps.version.outputs.previous-version }}"
echo "新版本: ${{ steps.version.outputs.version }}"
- name: 建立 Release
uses: akkuman/gitea-release-action@v1
with:
name: "My App v${{ steps.version.outputs.version }}"
tag_name: "v${{ steps.version.outputs.version }}"
版本遞增規則
- 預設增加小版號 (patch):每次執行都會增加小版號
- 小版號進位:當小版號 ≥
patch-limit時,重置為 0 並增加中版號 - 中版號進位:當中版號 ≥
minor-limit時,重置為 0 並增加大版號
範例版本演進 (預設設定)
初始:0.0.1
第2次:0.0.2
...
第10次:0.0.9
第11次:0.1.0 ← 小版號重置,中版號進位
...
第101次:0.9.9
第102次:1.0.0 ← 中版號重置,大版號進位
注意事項
- Action 必須放在
.gitea/actions/calculate-version/目錄下 - 需要有
GITEA_TOKENsecret 來存取 API - 第一次執行時會從
initial-version開始計算
Description
master
Latest