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 ファイルが含まれています。
データは 2 つの主要なリリース チャネル ( 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 バージョンの確認"on: workflow_dispatch: スケジュール: - cron: "0 * * * *" # https://crontab.guru/every-1-hourjobs: check-versions: 実行環境: ubuntu-latest 出力: キャッシュヒット: ${{steps.cache.outputs .cache-hit }} env: # ここで任意の JSON ファイルを使用できます CHROME_VERSION_URL: 「https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json」の手順: - 名前: Chrome バージョンのハッシュを取得します。 ID: get-versions 実行: | json=$(curl -s ${{ env.CHROME_VERSION_URL }}) echo json: ${json} hash=$(echo -n $json | md5sum) echo ハッシュ: ${hash} echo "::set-output name =hash::$hash" シェル: bash - 名前: ハッシュ ID に基づくキャッシュのセットアップ: キャッシュの使用: action/cache@v3 条件: パス: ~/cache-chrome-version # no-op キー: chrome-${{steps.get-versions.outputs.hash } } - 名前: "キャッシュ ヒット: 終了" if:steps.cache.outputs.cache-hit == 'true' run: echo "キャッシュ ヒット、新しい Chrome バージョンなし" トリガー ワークフロー: if: needs.check-versions.outputs .cache-hit != 'true' need: check-versions uses: ./.github/workflows/build.yml # これをターゲット ワークフローに変更します
./.github/workflows/build.yml
、新しい Chrome バージョンでトリガーしたいワークフローに変更します。
トラブルシューティング:
権限エラー: ワークフローは親から権限を継承します。ターゲット ワークフローで特別な権限を設定する場合は、上記のワークフローでもそれらを定義する必要があります。
「(...) そうすると、呼び出されるワークフローの深さの制限 2 を超えます」エラー: Github では残念ながら、再利用可能なワークフローが再利用可能なワークフローを呼び出すことを許可していません
データ §── 開発者 │ §── 全部 │ │ §── お知らせ │ │ │ §── 最新.json │ │ │ └── list.json │ │ └─ バージョン │ │ §── 最新.json │ │ └─ list.json │ §── アンドロイド │ │ §── お知らせ │ │ │ §── 最新.json │ │ │ └── list.json │ │ └─ バージョン │ │ §── 最新.json │ │ └─ list.json │ §── Linux │ │ §── お知らせ │ │ │ §── 最新.json │ │ │ └── list.json │ │ └─ バージョン │ │ §── 最新.json │ │ └─ list.json │ §── マック │ │ §── お知らせ │ │ │ §── 最新.json │ │ │ └── list.json │ │ └─ バージョン │ │ §── 最新.json │ │ └─ list.json │ └── 窓 │ §── インフォメーション │ │ §── 最新.json │ │ └─ list.json │ └─ バージョン │ §── 最新.json │ └── list.json ━──安定 §──全部 │ §── インフォメーション │ │ §── 最新.json │ │ └─ list.json │ └─ バージョン │ §── 最新.json │ └── list.json §── アンドロイド │ §── インフォメーション │ │ §── 最新.json │ │ └─ list.json │ └─ バージョン │ §── 最新.json │ └── list.json §── Linux │ §── インフォメーション │ │ §── 最新.json │ │ └─ list.json │ └─ バージョン │ §── 最新.json │ └── list.json §── マック │ §── インフォメーション │ │ §── 最新.json │ │ └─ list.json │ └─ バージョン │ §── 最新.json │ └── list.json └── 窓 §── インフォメーション │ §── 最新.json │ └── list.json └──バージョン §── 最新.json ━── list.json
マサチューセッツ工科大学