自動更新儲存庫,將 Google Chrome 版本和版本資訊儲存為 JSON。
視窗 | macOS | Linux | 安卓 |
---|---|---|---|
使用 CDN 根據需要取得數據,範例:
所有平台的最新 chrome 穩定版本資訊:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json
適用於所有平台的最新 15 個 chrome 穩定版本:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/list.json
適用於 Windows 的最新 chrome 穩定版本:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/version/latest.json
最後一個 chrome 穩定版 Windows 版本的擴充版本資訊:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/info/latest.json
./data
目錄包含 JSON 檔:
數據分為兩個主要發布管道( dev
和stable
)
資料依平台劃分( windows
、 mac
、 linux
、 android
)
此外,在all
下還提供了所有平台的組合版本信息
資訊
包含完整的版本信息,作為latest.json
或list.json
版本
包含簡短的版本訊息,例如latest.json
或list.json
不幸的是,Github Actions 沒有廣播功能,而且該儲存庫只能調度到手動定義的儲存庫。
作為解決方法,您可以新增一個新的工作流程,該工作流程將定期輪詢與您相關的JSON 檔案(使用cron 觸發器)、對資料進行雜湊處理並使用Github 的內建快取功能來了解是否發生了更改以及是否應觸發您的其他工作流程。
筆記:
以下的工作流程非常快,檢查新版本是否可用只需幾秒鐘
Githubs 會刪除 7 天內未存取的快取條目,考慮到此工作流程運作更頻繁,這不是問題
第一次觸發工作流程時,它尚未快取 chrome 版本的雜湊值,並將觸發目標工作流程
先決條件:
您的目標工作流程需要workflow_call
觸發器:
上:workflow_call:
將以下工作流程儲存為您的儲存庫中的.github/workflows/check-chrome-versions.yml
:
名稱:「[cron] 檢查 chrome 版本」:workflow_dispatch:計畫: - cron:「0 * * * *」#https://crontab.guru/every-1-hourjobs:檢查版本:運行:ubuntu-最新輸出:快取命中:$ {{steps.cache.outputs .cache-hit }} env: # 您可以在此處使用任何JSON 檔案CHROME_VERSION_URL: "https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json" steps : - name: 取得 chrome 版本的雜湊值 id: get-versions run: | json=$(curl -s ${{ env.CHROME_VERSION_URL }}) echo json: ${json} hash=$(echo -n $json | md5sum) echo hash: ${hash} echo "::set-輸出名稱=hash::$hash" shell: bash - 名稱:根據雜湊 ID 設定快取:快取使用:actions/cache@v3 with:路徑:~/cache-chrome-version # no-op key: chrome-${{steps.get-versions.outputs.hash} } - 名稱:「快取命中:退出」 if:steps.cache.outputs.cache-hit == 'true' run:echo「快取命中,沒有新的chrome 版本」觸發器工作流程:if:needs.check-versions .outputs .cache-hit != 'true' 需要: check-versions 使用: ./.github/workflows/build.yml # 將其更改為您的目標工作流程
將./.github/workflows/build.yml
變更為您想要在新 chrome 版本上觸發的任何工作流程。
故障排除:
權限錯誤:工作流程從父級繼承其權限,如果您在目標工作流程中設定特殊權限,則您還需要在上面的工作流程中定義它們
「(...)這樣做會超出呼叫工作流程深度 2 的限制」錯誤:不幸的是,Github 不允許可重複使用工作流程呼叫可重複使用工作流程
數據 ├── 開發 │ ├── 全部 │ │ ├── 資訊 │ │ │ ├──latest.json │ │ │ └── list.json │ │ └── 版本 │ │ ├──latest.json │ │ └── list.json │ ├── 安卓 │ │ ├── 資訊 │ │ │ ├──latest.json │ │ │ └── list.json │ │ └── 版本 │ │ ├──latest.json │ │ └── list.json │ ├── linux │ │ ├── 資訊 │ │ │ ├──latest.json │ │ │ └── list.json │ │ └── 版本 │ │ ├──latest.json │ │ └── list.json │ ├── 馬克 │ │ ├── 資訊 │ │ │ ├──latest.json │ │ │ └── list.json │ │ └── 版本 │ │ ├──latest.json │ │ └── list.json │ └── 窗戶 │ ├── 資訊 │ │ ├──latest.json │ │ └── list.json │ └── 版本 │ ├── 最新.json │ └── 列表.json └── 穩定 ├── 全部 │ ├── 資訊 │ │ ├──latest.json │ │ └── list.json │ └── 版本 │ ├── 最新.json │ └── 列表.json ├── 安卓 │ ├── 資訊 │ │ ├──latest.json │ │ └── list.json │ └── 版本 │ ├── 最新.json │ └── 列表.json ├── linux │ ├── 資訊 │ │ ├──latest.json │ │ └── list.json │ └── 版本 │ ├── 最新.json │ └── 列表.json ├── 麥克 │ ├── 資訊 │ │ ├──latest.json │ │ └── list.json │ └── 版本 │ ├── 最新.json │ └── 列表.json └── 窗戶 ├── 訊息 │ ├── 最新.json │ └── 列表.json └── 版本 ├── 最新.json └── 列表.json
麻省理工學院