docs(calculate-version): 重整 action 與 workflow 文件
CI / 1. BUILD (pull_request) Successful in 1s
CI / 2. TEST (pull_request) Successful in 3s
CI / 3. RESULT (pull_request) Successful in 2s

This commit is contained in:
2026-07-11 13:15:21 +00:00
parent c8fe088e42
commit fa4f7cd50b
7 changed files with 155 additions and 33 deletions
+24 -24
View File
@@ -1,8 +1,8 @@
# calculate-version
更新時間:2026/07/11 17:53:32Asia/Taipei
更新時間:2026/07/11 21:08:44Asia/Taipei
這個專案是一個 Gitea Docker action會讀取 repository 的 release 清單計算下一個正式版或 beta 版本,並結果輸出成 action output
這個專案是一個以 Node.js 實作的 Gitea Docker action負責從 release 清單計算下一個正式版或 beta 版本,並結果輸出給後續工作流程使用
## 專案列表
@@ -10,19 +10,19 @@
| 專案名稱 | 專案描述 |
| --- | --- |
| [calculate-version](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/) | 這是一個以 Node.js 實作的 Gitea Docker action提供 release 擷取、版本解析、beta 推算與 action 主流程輸出。 |
| [calculate-version](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/) | 這是一個以 Node.js 實作的 Gitea Docker action負責取得 release 資料、計算下一個版本號,並輸出給 workflow 或 action 使用。 |
### 參考專案表
| 專案名稱 | 參考專案列表 |
| --- | --- |
| [calculate-version](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/) | 無 |
| [calculate-version](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/) | 無 |
### NuGet 套件表
| 專案名稱 | NuGet 套件列表 |
| --- | --- |
| [calculate-version](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/) | 無 |
| [calculate-version](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/) | 無 |
## 功能列表
@@ -30,21 +30,21 @@
| 功能名稱 | 功能描述 |
| --- | --- |
| [calculate-version.normalizeBetaFlag](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L72) | [把空值或 `null` 正規化成 beta 旗標字串](#calculateversionnormalizebetaflag) |
| [calculate-version.parseVersionParts](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L107) | [版本字串拆成數字片段](#calculateversionparseversionparts) |
| [calculate-version.compareVersionParts](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L125) | [逐段比較版本片段,供排序使用](#calculateversioncompareversionparts) |
| [calculate-version.stableVersionFromTag](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L148) | [解析穩定版 tag 為版本片段](#calculateversionstableversionfromtag) |
| [calculate-version.latestStableVersion](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L169) | [ release 清單找出最新穩定版](#calculateversionlateststableversion) |
| [calculate-version.nextReleaseVersion](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L195) | [正式版版本號遞增一版](#calculateversionnextreleaseversion) |
| [calculate-version.nextBetaNumber](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L224) | [推算下一個 beta 編號](#calculateversionnextbetanumber) |
| [calculate-version.calculateVersion](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L252) | [回傳目前最新版本與下一個版本](#calculateversioncalculateversion) |
| [calculate-version.fetchReleases](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L334) | [分頁抓取 repository release 清單](#calculateversionfetchreleases) |
| [calculate-version.main](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/ai-review-resolve/develop-20260711-150530/src/index.js#L373) | [執行 action 主流程並輸出結果](#calculateversionmain) |
| [calculate-version.normalizeBetaFlag](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L95) | [將 beta 輸入正規化成字串 `false`](#calculateversionnormalizebetaflag) |
| [calculate-version.parseVersionParts](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L130) | [版本字串拆成可比較的數字片段](#calculateversionparseversionparts) |
| [calculate-version.compareVersionParts](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L148) | [比較兩組版本片段的大小](#calculateversioncompareversionparts) |
| [calculate-version.stableVersionFromTag](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L171) | [從 tag 解析穩定版版本片段](#calculateversionstableversionfromtag) |
| [calculate-version.latestStableVersion](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L192) | [找出 release 清單中的最新穩定版](#calculateversionlateststableversion) |
| [calculate-version.nextReleaseVersion](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L218) | [推算下一個正式版版本號](#calculateversionnextreleaseversion) |
| [calculate-version.nextBetaNumber](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L247) | [推算下一個 beta 編號](#calculateversionnextbetanumber) |
| [calculate-version.calculateVersion](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L275) | [依 release 資料與 beta 旗標計算目前版本與下一](#calculateversioncalculateversion) |
| [calculate-version.fetchReleases](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L357) | [分頁抓取 repository release 清單](#calculateversionfetchreleases) |
| [calculate-version.main](https://gitea.jsc.idv.tw/actions/calculate-version/src/branch/develop/src/index.js#L396) | [執行 action 主流程並輸出版本結果](#calculateversionmain) |
## 使用範例
### <a id="calculateversionnormalizebetaflag"></a>calculate-version.normalizeBetaFlag
把空值、`null` 或未定義值正規化成 `false`,讓後續版本判斷只處理字串。
將 action 輸入或環境變數轉成固定的字串旗標,避免後續流程混用空值與字串。
```js
const { normalizeBetaFlag } = require('./src/index.js');
@@ -53,7 +53,7 @@ const isBeta = normalizeBetaFlag(process.env.IS_BETA);
```
### <a id="calculateversionparseversionparts"></a>calculate-version.parseVersionParts
將版本字串拆成數字陣列,非數字片段會保守視為 `0`
將版本字串拆成數字陣列,適合後續比較或進位運算
```js
const { parseVersionParts } = require('./src/index.js');
@@ -62,7 +62,7 @@ const parts = parseVersionParts('1.2.3');
```
### <a id="calculateversioncompareversionparts"></a>calculate-version.compareVersionParts
逐段比較兩組版本片段,適合搭配 `Array.prototype.sort()` 使用
比較兩組版本片段,常用於排序 release 版本
```js
const { compareVersionParts } = require('./src/index.js');
@@ -71,7 +71,7 @@ const sorted = [[1, 2, 10], [1, 2, 3]].sort(compareVersionParts);
```
### <a id="calculateversionstableversionfromtag"></a>calculate-version.stableVersionFromTag
從 tag 名稱擷取穩定版版本資訊,像 `v1.2.3` 會被解析成版本片段
從 tag 名稱過濾出穩定版版本,忽略 beta 與不合法格式
```js
const { stableVersionFromTag } = require('./src/index.js');
@@ -80,7 +80,7 @@ const parts = stableVersionFromTag('v1.2.3');
```
### <a id="calculateversionlateststableversion"></a>calculate-version.latestStableVersion
從 release 清單中找出最新穩定版版本號,找不到時回傳 `0.0.0`
從 release 清單中找出最新穩定版,若沒有可用資料就回傳 `0.0.0`
```js
const { latestStableVersion } = require('./src/index.js');
@@ -93,7 +93,7 @@ const latest = latestStableVersion([
```
### <a id="calculateversionnextreleaseversion"></a>calculate-version.nextReleaseVersion
將正式版版本號遞增一版,`patch``minor`會以 10 為進位界線。
將正式版版本號往下一版遞增,patch 會以 10 為進位界線。
```js
const { nextReleaseVersion } = require('./src/index.js');
@@ -114,7 +114,7 @@ const betaNumber = nextBetaNumber([
```
### <a id="calculateversioncalculateversion"></a>calculate-version.calculateVersion
回傳目前最新版本與下一個版本,beta 模式時會產生對應的 `-beta.N` 結果
依 release 資料與 beta 狀態回傳 `[latestVersion, nextVersion]`
```js
const { calculateVersion } = require('./src/index.js');
@@ -126,7 +126,7 @@ const [latest, nextVersion] = calculateVersion([
```
### <a id="calculateversionfetchreleases"></a>calculate-version.fetchReleases
分頁抓取 repository 的 release 清單,直到 API 回傳空資料或最後一頁不足頁面上限
分頁抓取 repository 的 release 清單,直到 API 沒有新資料為止
```js
const { fetchReleases } = require('./src/index.js');
@@ -139,7 +139,7 @@ const { fetchReleases } = require('./src/index.js');
```
### <a id="calculateversionmain"></a>calculate-version.main
執行 action 主流程,會讀取環境變數、抓取 release、計算版本並輸出結果
執行 action 主流程,通常由 Gitea action runtime 觸發
```js
const { main } = require('./src/index.js');