Selbstaktualisierendes Repository zum Speichern von Google Chrome-Versions- und Versionsinformationen als JSON.
Windows | macOS | Linux | Android |
---|---|---|---|
Verwenden Sie ein CDN, um die Daten nach Bedarf abzurufen, Beispiele:
Aktuelle Informationen zur stabilen Chrome-Version für alle Plattformen:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json
Die letzten 15 stabilen Chrome-Versionen für alle Plattformen:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/list.json
Neueste stabile Chrome-Version für Windows:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/version/latest.json
Erweiterte Versionsinformationen für die letzte Chrome-Stable-Windows-Version:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/info/latest.json
Das Verzeichnis ./data
enthält die JSON-Dateien:
Die Daten werden nach den beiden Hauptveröffentlichungskanälen ( dev
und stable
) aufgeteilt.
Die Daten werden nach Plattform aufgeteilt ( windows
, mac
, linux
, android
).
Darüber hinaus werden unter all
zusammengefasste Versionsinformationen für alle Plattformen bereitgestellt
Info
Enthält die vollständigen Versionsinformationen, entweder als latest.json
oder list.json
Version
Enthält kurze Versionsinformationen, entweder als latest.json
oder list.json
Leider verfügt Github Actions über keine Broadcasting-Funktion und dieses Repo kann nur an manuell definierte Repos versenden.
Um dieses Problem zu umgehen, können Sie einen neuen Workflow hinzufügen, der die für Sie relevante JSON-Datei regelmäßig abfragt (mithilfe eines Cron-Triggers), die Daten hasht und die integrierte Caching-Funktion von Github verwendet, um zu verstehen, ob eine Änderung stattgefunden hat und Ihr anderer Workflow ausgelöst werden sollte .
Notiz:
Der folgende Arbeitsablauf ist sehr schnell und die Überprüfung, ob neue Versionen verfügbar sind, dauert nur wenige Sekunden
Githubs entfernt Cache-Einträge, auf die innerhalb von 7 Tagen nicht zugegriffen wurde, was kein Problem darstellt, da dieser Workflow häufiger ausgeführt wird
Beim ersten Auslösen des Workflows wurde der Hash der Chrome-Versionen noch nicht zwischengespeichert und der Zielworkflow wird ausgelöst
Voraussetzungen:
Ihr Zielworkflow benötigt einen workflow_call
Trigger:
on: Workflow_call:
Speichern Sie den folgenden Workflow als .github/workflows/check-chrome-versions.yml
in Ihrem Repository:
Name: „[cron] Chrome-Versionen prüfen“auf: Workflow_dispatch: Zeitplan: - cron: "0 * * * *" # https://crontab.guru/every-1-hourjobs: check-versions:Runs-on: ubuntu-latest Outputs: Cache-Hit: ${{steps.cache.outputs .cache-hit }} env: # Sie können hier jede JSON-Datei verwenden CHROME_VERSION_URL: „https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json“ Schritte: - Name: Hash der Chrome-Versionen abrufen ID: Get-Versions-Ausführung: | 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 – Name: Cache basierend auf Hash-ID einrichten: Cache verwendet: actions/cache@v3 mit: Pfad: ~/cache-chrome-version # No-Op-Schlüssel: chrome-${{steps.get-versions.outputs.hash } } - Name: „Cache-Treffer: Beenden“ if:steps.cache.outputs.cache-hit == ‚true‘ run: echo „Cache-Treffer, keine neuen Chrome-Versionen“ Trigger-Workflow: if: Needs.check-versions.outputs .cache-hit != 'true' braucht: check-versions verwendet: ./.github/workflows/build.yml # Ändern Sie dies in Ihren Zielworkflow
Ändern Sie ./.github/workflows/build.yml
in den Workflow, den Sie in neuen Chrome-Versionen auslösen möchten.
Fehlerbehebung:
Berechtigungsfehler: Workflows erben ihre Berechtigungen vom übergeordneten Workflow. Wenn Sie in Ihrem Zielworkflow spezielle Berechtigungen festlegen, müssen Sie diese auch im obigen Workflow definieren
Fehler „(...) dies würde die Grenze der aufgerufenen Workflow-Tiefe von 2 überschreiten“ : Github lässt leider nicht zu, dass wiederverwendbare Workflows wiederverwendbare Workflows aufrufen
Daten ├── Entwickler │ ├── alle │ │ ├── Infos │ │ │ ├── Latest.json │ │ │ └── list.json │ │ └── Version │ │ ├── Latest.json │ │ └── list.json │ ├── Android │ │ ├── Infos │ │ │ ├── Latest.json │ │ │ └── list.json │ │ └── Version │ │ ├── Latest.json │ │ └── list.json │ ├── Linux │ │ ├── Infos │ │ │ ├── Latest.json │ │ │ └── list.json │ │ └── Version │ │ ├── Latest.json │ │ └── list.json │ ├── mac │ │ ├── Infos │ │ │ ├── Latest.json │ │ │ └── list.json │ │ └── Version │ │ ├── Latest.json │ │ └── list.json │ └── Fenster │ ├── Infos │ │ ├── Latest.json │ │ └── list.json │ └── Version │ ├── Latest.json │ └── list.json └── stabil ├── alle │ ├── Infos │ │ ├── Latest.json │ │ └── list.json │ └── Version │ ├── Latest.json │ └── list.json ├── Android │ ├── Infos │ │ ├── Latest.json │ │ └── list.json │ └── Version │ ├── Latest.json │ └── list.json ├── Linux │ ├── Infos │ │ ├── Latest.json │ │ └── list.json │ └── Version │ ├── Latest.json │ └── list.json ├── mac │ ├── Infos │ │ ├── Latest.json │ │ └── list.json │ └── Version │ ├── Latest.json │ └── list.json └── Fenster ├──Info │ ├── Latest.json │ └── list.json └── Version ├── Latest.json └── list.json
MIT