Référentiel à mise à jour automatique pour stocker les informations de version et de version de Google Chrome au format JSON.
Fenêtres | macOS | Linux | Androïde |
---|---|---|---|
Utilisez un CDN pour récupérer les données selon vos besoins, exemples :
Dernières informations sur la version stable de Chrome pour toutes les plateformes :
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json
15 dernières versions stables de Chrome pour toutes les plateformes :
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/list.json
Dernière version stable de Chrome pour Windows :
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/version/latest.json
Informations sur la version étendue pour la dernière version stable de Chrome :
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/info/latest.json
Le répertoire ./data
contient les fichiers JSON :
Les données sont divisées selon les deux principaux canaux de publication ( dev
et stable
).
Les données sont réparties par plateforme ( windows
, mac
, linux
, android
)
De plus, des informations sur les versions combinées pour toutes les plates-formes sont fournies sous all
Informations
Contient les informations complètes sur la version, sous forme de latest.json
ou list.json
Version
Contient de brèves informations sur la version, sous forme de latest.json
ou list.json
Malheureusement, Github Actions n'a pas de fonctionnalité de diffusion et ce dépôt ne peut être envoyé que vers des dépôts définis manuellement.
Comme solution de contournement, vous pouvez ajouter un nouveau flux de travail qui interrogera le fichier JSON qui vous concerne de manière récurrente (à l'aide d'un déclencheur cron), hachera les données et utiliser la fonction de mise en cache intégrée de Github pour comprendre si un changement s'est produit et si votre autre flux de travail doit être déclenché. .
Note:
Le flux de travail ci-dessous est très rapide et vérifier si de nouvelles versions sont disponibles ne prend que quelques secondes
Githubs supprime les entrées de cache non consultées depuis 7 jours, ce qui n'est pas un problème étant donné que ce workflow s'exécute plus souvent
La première fois que le workflow est déclenché, il n'a pas encore mis en cache le hachage des versions de Chrome et déclenchera le workflow cible.
Conditions préalables :
Votre workflow cible a besoin d'un déclencheur workflow_call
:
sur : workflow_call :
Enregistrez le workflow ci-dessous sous .github/workflows/check-chrome-versions.yml
dans votre dépôt :
nom : "[cron] Vérifier les versions de Chrome" sur : workflow_dispatch : planning : - cron : "0 * * * *" # https://crontab.guru/every-1-hourjobs : check-versions : exécution : ubuntu-latest sorties : cache-hit : ${{ steps.cache.outputs .cache-hit }} env : # Vous pouvez utiliser n'importe quel fichier JSON ici CHROME_VERSION_URL : Étapes "https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json" : - nom : Obtenir le hachage des versions 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 - nom : Cache d'installation basé sur l'identifiant de hachage : le cache utilise : actions/cache@v3 avec : chemin : ~/cache-chrome-version # clé no-op : chrome-${{ steps.get-versions.outputs.hash } } - nom : « Accès au cache : Quitter » si : steps.cache.outputs.cache-hit == 'true' run : echo " accès au cache, pas de nouvelles versions de Chrome » trigger-workflow : if : need.check-versions.outputs .cache-hit != 'vrai' besoins : check-versions utilise : ./.github/workflows/build.yml # Remplacez ceci par votre flux de travail cible
Remplacez ./.github/workflows/build.yml
par le flux de travail que vous souhaitez déclencher sur les nouvelles versions de Chrome.
Dépannage :
Erreurs d'autorisation : les workflows héritent de leurs autorisations du parent. Si vous définissez des autorisations spéciales dans votre workflow cible, vous devez également les définir dans celui ci-dessus.
Erreur "(...) cela dépasserait la limite de profondeur de workflow appelée de 2" : Github n'autorise malheureusement pas les workflows réutilisables à appeler des workflows réutilisables
données ├── développeur │ ├── tous │ │ ├── infos │ │ │ ├── last.json │ │ │ └── list.json │ │ └──version │ │ ├── dernier.json │ │ └── list.json │ ├── androïde │ │ ├── infos │ │ │ ├── dernier.json │ │ │ └── list.json │ │ └── version │ │ ├── dernier.json │ │ └── list.json │ ├──Linux │ │ ├── infos │ │ │ ├── dernier.json │ │ │ └── list.json │ │ └──version │ │ ├── dernier.json │ │ └── list.json │ ├── Mac │ │ ├── infos │ │ │ ├── dernier.json │ │ │ └── list.json │ │ └──version │ │ ├── dernier.json │ │ └── list.json │ └── fenêtres │ ├── informations │ │ ├── dernier.json │ │ └── list.json │ └──version │ ├── dernier.json │ └── list.json └── stable ├── tous │ ├── informations │ │ ├── dernier.json │ │ └── list.json │ └──version │ ├── dernier.json │ └── list.json ├── androïde │ ├── informations │ │ ├── dernier.json │ │ └── list.json │ └── version │ ├── dernier.json │ └── list.json ├──Linux │ ├── informations │ │ ├── dernier.json │ │ └── list.json │ └── version │ ├── dernier.json │ └── list.json ├── Mac │ ├── informations │ │ ├── dernier.json │ │ └── list.json │ └── version │ ├── dernier.json │ └── list.json └── fenêtres ├── informations │ ├── dernier.json │ └── list.json version └── ├── dernier.json └── liste.json
MIT