Repositorio de actualización automática para almacenar información de lanzamiento y versión de Google Chrome como JSON.
ventanas | macos | linux | Androide |
---|---|---|---|
Utilice una CDN para recuperar los datos según sea necesario, ejemplos:
Información más reciente sobre la versión estable de Chrome para todas las plataformas:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json
Últimas 15 versiones estables de Chrome para todas las plataformas:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/list.json
Última versión estable de Chrome para Windows:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/version/latest.json
Información de versión ampliada para la última versión estable de Chrome para Windows:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/info/latest.json
El directorio ./data
contiene los archivos JSON:
Los datos están divididos por los dos canales de lanzamiento principales ( dev
y stable
).
Los datos se dividen por plataforma ( windows
, mac
, linux
, android
).
Además, se proporciona información de versión combinada para todas las plataformas en all
Información
Contiene la información completa de la versión, ya sea como latest.json
o list.json
Versión
Contiene información breve sobre la versión, ya sea como latest.json
o list.json
Desafortunadamente, Github Actions no tiene función de transmisión y este repositorio solo se puede enviar a repositorios definidos manualmente.
Como solución alternativa, puede agregar un nuevo flujo de trabajo que sondeará el archivo JSON relevante para usted de forma recurrente (usando un activador cron), codificará los datos y usará la función de almacenamiento en caché incorporada de Github para comprender si se produjo un cambio y se debe activar el otro flujo de trabajo. .
Nota:
El flujo de trabajo a continuación es muy rápido y verificar si hay nuevas versiones disponibles solo toma unos segundos.
Githubs elimina las entradas de caché a las que no se accede en 7 días, lo cual no es un problema dado que este flujo de trabajo se ejecuta con más frecuencia
La primera vez que se activa el flujo de trabajo, aún no ha almacenado en caché el hash de las versiones de Chrome y activará el flujo de trabajo de destino.
Requisitos previos:
Su flujo de trabajo de destino necesita un activador de workflow_call
:
en: flujo de trabajo_llamada:
Guarde el siguiente flujo de trabajo como .github/workflows/check-chrome-versions.yml
en su repositorio:
nombre: "[cron] Verificar versiones de Chrome" en: flujo de trabajo_dispatch: programación: - cron: "0 * * * *" # https://crontab.guru/every-1-hourjobs: check-versions: run-on: ubuntu-latest outputs: cache-hit: ${{ pasos.cache.outputs .cache-hit }} env: # Puedes usar cualquier archivo JSON aquí CHROME_VERSION_URL: Pasos "https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json": - nombre: Obtener hash de las versiones de 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" shell: bash - nombre: Configurar caché basado en ID de hash: usos de caché: acciones/cache@v3 con: ruta: ~/cache-chrome-version # clave no operativa: chrome-${{ pasos.get-versions.outputs.hash } } - nombre: "Acierto de caché: Salir" si: pasos.cache.outputs.cache-hit == 'true' ejecutar: echo "acierto de caché, no hay nuevas versiones de Chrome" flujo de trabajo desencadenante: si: necesita.check-versions.outputs .cache-hit! = 'true' necesita: check-versions usa: ./.github/workflows/build.yml # Cambie esto a su flujo de trabajo objetivo
Cambie ./.github/workflows/build.yml
a cualquier flujo de trabajo que desee activar en las nuevas versiones de Chrome.
Solución de problemas:
Errores de permisos: los flujos de trabajo heredan sus permisos del padre, si establece permisos especiales en su flujo de trabajo de destino, también debe definirlos en el anterior.
Error "(...) hacerlo excedería el límite de profundidad de flujo de trabajo llamado de 2" : Desafortunadamente, Github no permite que los flujos de trabajo reutilizables llamen a flujos de trabajo reutilizables
datos ├── desarrollador │ ├── todos │ │ ├── información │ │ │ ├── último.json │ │ │ └── lista.json │ │ └── versión │ │ ├── último.json │ │ └── lista.json │ ├── androide │ │ ├── información │ │ │ ├── último.json │ │ │ └── lista.json │ │ └── versión │ │ ├── último.json │ │ └── lista.json │ ├── linux │ │ ├── información │ │ │ ├── último.json │ │ │ └── lista.json │ │ └── versión │ │ ├── último.json │ │ └── lista.json │ ├── mac │ │ ├── información │ │ │ ├── último.json │ │ │ └── lista.json │ │ └── versión │ │ ├── último.json │ │ └── lista.json │ └── ventanas │ ├── información │ │ ├── último.json │ │ └── lista.json │ └── versión │ ├── último.json │ └── lista.json └── estable ├── todos │ ├── información │ │ ├── último.json │ │ └── lista.json │ └── versión │ ├── último.json │ └── lista.json ├── androide │ ├── información │ │ ├── último.json │ │ └── lista.json │ └── versión │ ├── último.json │ └── lista.json ├──linux │ ├── información │ │ ├── último.json │ │ └── lista.json │ └── versión │ ├── último.json │ └── lista.json ├──mac │ ├── información │ │ ├── último.json │ │ └── lista.json │ └── versión │ ├── último.json │ └── lista.json └── ventanas ├── información │ ├── último.json │ └── lista.json └── versión ├── último.json └── lista.json
MIT