8d84d3b28d1169b84080dc20a867d7119f2dde43
CD / DEPLOY (push) Successful in 4s
Reviewed-on: #8
calculate-version
更新時間:2026/07/11 17:53:32(Asia/Taipei)
這個專案是一個 Gitea Docker action,會讀取 repository 的 release 清單,計算下一個正式版或 beta 版本號,並將結果輸出成 action output。
專案列表
專案描述表
| 專案名稱 | 專案描述 |
|---|---|
| calculate-version | 這是一個以 Node.js 實作的 Gitea Docker action,提供 release 擷取、版本解析、beta 推算與 action 主流程輸出。 |
參考專案表
| 專案名稱 | 參考專案列表 |
|---|---|
| calculate-version | 無 |
NuGet 套件表
| 專案名稱 | NuGet 套件列表 |
|---|---|
| calculate-version | 無 |
功能列表
calculate-version
使用範例
calculate-version.normalizeBetaFlag
把空值、null 或未定義值正規化成 false,讓後續版本判斷只處理字串。
const { normalizeBetaFlag } = require('./src/index.js');
const isBeta = normalizeBetaFlag(process.env.IS_BETA);
calculate-version.parseVersionParts
將版本字串拆成數字陣列,非數字片段會保守視為 0。
const { parseVersionParts } = require('./src/index.js');
const parts = parseVersionParts('1.2.3');
calculate-version.compareVersionParts
逐段比較兩組版本片段,適合搭配 Array.prototype.sort() 使用。
const { compareVersionParts } = require('./src/index.js');
const sorted = [[1, 2, 10], [1, 2, 3]].sort(compareVersionParts);
calculate-version.stableVersionFromTag
從 tag 名稱擷取穩定版版本資訊,像 v1.2.3 會被解析成版本片段。
const { stableVersionFromTag } = require('./src/index.js');
const parts = stableVersionFromTag('v1.2.3');
calculate-version.latestStableVersion
從 release 清單中找出最新的穩定版版本號,找不到時回傳 0.0.0。
const { latestStableVersion } = require('./src/index.js');
const latest = latestStableVersion([
{ tag_name: 'v1.2.2' },
{ tag_name: 'v1.2.3-beta.1' },
{ tag_name: 'v1.2.3' },
]);
calculate-version.nextReleaseVersion
將正式版版本號遞增一版,patch 與 minor 都會以 10 為進位界線。
const { nextReleaseVersion } = require('./src/index.js');
const nextVersion = nextReleaseVersion('1.2.9');
calculate-version.nextBetaNumber
推算下一個 beta 編號,會找出目前版本對應的最大 beta.N 再加一。
const { nextBetaNumber } = require('./src/index.js');
const betaNumber = nextBetaNumber([
{ tag_name: 'v1.2.4-beta.1' },
{ tag_name: 'v1.2.4-beta.3' },
], '1.2.4');
calculate-version.calculateVersion
回傳目前最新版本與下一個版本,beta 模式時會產生對應的 -beta.N 結果。
const { calculateVersion } = require('./src/index.js');
const [latest, nextVersion] = calculateVersion([
{ tag_name: 'v1.2.3' },
{ tag_name: 'v1.2.4-beta.1' },
], 'false');
calculate-version.fetchReleases
分頁抓取 repository 的 release 清單,直到 API 回傳空資料或最後一頁不足頁面上限。
const { fetchReleases } = require('./src/index.js');
// 需人工確認:baseUrl 與 repository 必須對應實際 Gitea 環境。
(async () => {
const releases = await fetchReleases('https://gitea.example.com', 'owner/repo', 'token-value');
console.log(releases);
})();
calculate-version.main
執行 action 主流程,會讀取環境變數、抓取 release、計算版本並輸出結果。
const { main } = require('./src/index.js');
// 需人工確認:這個入口通常應由 Gitea action 啟動,且需要完整環境變數。
(async () => {
await main();
})();
Description
Calculate the Next Version Number
https://gitea.jsc.idv.tw/actions/calculate-version
111 KiB
Releases
24
calculate-version v0.0.7
Latest
Languages
JavaScript
90.5%
Dockerfile
5.9%
Shell
3.6%