Files

69 lines
1.7 KiB
Markdown

# CLEANUP OLD NUGET
清理 Gitea NuGet 套件舊版本的 Docker Action。
## 功能
- 依序嘗試取得 Gitea API token。
- 預設每個套件保留最新 `2` 個版本。
- 直接刪除超出保留數量的舊版本。
- 只處理你指定的 NuGet 套件名稱,可一次指定多個。
- 輸出整理過的 log,分成 summary、delete queue、delete results 幾個區塊。
- 每頁預設抓取 100 筆版本,可用 `PAGE_LIMIT` 調整。
## Token 來源順序
Action 會依序嘗試以下來源:
1. `inputs.RUNNER_TOKEN`
2. `secrets.GITEA_TOKEN`
3. `secrets.RUNNER_TOKEN`
若三者都沒有值,Action 會以非零 exit code 結束。
## Inputs
| 名稱 | 類型 | 預設值 | 說明 |
| --- | --- | --- | --- |
| `RUNNER_TOKEN` | string | - | Gitea API token,優先順序最高 |
| `KEEP_COUNT` | integer string | `2` | 每個套件要保留的最新版本數,必須是整數且 `>= 0` |
| `PACKAGE_NAMES` | string | - | 要清理的 NuGet 套件名稱,逗號分隔,可一次指定多個 |
## Log 行為
執行時只會輸出必要資訊:
- `Cleanup summary`
- `Delete queue`
- `Delete results`
- `Final summary`
- `Summary: packages=... versions=... kept=... candidates=... deleted=... errors=...`
## Workflow 範例
```yaml
jobs:
cleanup:
runs-on: ubuntu
steps:
- uses: https://gitea.jsc.idv.tw/jiantw83/cleanup-nuget@${{ vars.ACTION_CLEANUP_NUGET_VERSION }}
with:
RUNNER_TOKEN: ${{ secrets.GITEA_TOKEN }}
KEEP_COUNT: 2
PACKAGE_NAMES: package-a,package-b
```
## 相關檔案
- Action 定義: [`action.yaml`](action.yaml)
- 執行腳本: [`entrypoint.sh`](entrypoint.sh)
- 測試腳本: [`tests/entrypoint.sh`](tests/entrypoint.sh)
## 測試
直接執行:
```bash
bash tests/entrypoint.sh
```