自动更新存储库,将 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”步骤: - 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
麻省理工学院