Самообновляемый репозиторий для хранения информации о выпуске и версии Google Chrome в формате JSON.
Окна | macOS | Линукс | Андроид |
---|---|---|---|
Используйте 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
Последняя стабильная версия Chrome для Windows:
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-output name =hash::$hash" оболочка: bash - имя: Настройка кеша на основе идентификатора хеша: использование кеша: действия/cache@v3 с: путь: ~/cache-chrome-version # no-op key: chrome-${{steps.get-versions.outputs.hash } } - name: «Попадание в кэш: Выход» 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, к сожалению, не позволяет повторно используемым рабочим процессам вызывать повторно используемые рабочие процессы.
данные ├── разработчик │ ├── все │ │ ├── информация │ │ │ ├── последний.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
Массачусетский технологический институт