Repositório autoatualizável para armazenar informações de lançamento e versão do Google Chrome como JSON.
Windows | macOS | Linux | Android |
---|---|---|---|
Use um CDN para buscar os dados conforme necessário, exemplos:
Informações mais recentes da versão estável do Chrome para todas as plataformas:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json
Últimas 15 versões estáveis do Chrome para todas as plataformas:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/list.json
Versão estável mais recente do Chrome para Windows:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/version/latest.json
Informações estendidas de versão para a última versão estável do Chrome para Windows:
https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/windows/info/latest.json
O diretório ./data
contém os arquivos JSON:
Os dados são divididos pelos dois principais canais de lançamento ( dev
e stable
)
Os dados são divididos pela plataforma ( windows
, mac
, linux
, android
)
Além disso, informações combinadas sobre a versão para todas as plataformas são fornecidas em all
Informações
Contém as informações completas da versão, como latest.json
ou list.json
Versão
Contém informações breves sobre a versão, como latest.json
ou list.json
Infelizmente, o Github Actions não possui recurso de transmissão e este repositório só pode ser despachado para repositórios definidos manualmente.
Como solução alternativa, você pode adicionar um novo fluxo de trabalho que irá pesquisar o arquivo JSON relevante para você de forma recorrente (usando um gatilho cron), fazer hash dos dados e usar o recurso de cache integrado do Github para entender se uma alteração aconteceu e seu outro fluxo de trabalho deve ser acionado .
Observação:
O fluxo de trabalho abaixo é muito rápido e verificar se novas versões estão disponíveis leva apenas alguns segundos
Githubs remove entradas de cache não acessadas em 7 dias, o que não é um problema, já que esse fluxo de trabalho é executado com mais frequência
Na primeira vez que o fluxo de trabalho é acionado, ele ainda não armazenou em cache o hash das versões do Chrome e acionará o fluxo de trabalho de destino
Pré-requisitos:
Seu fluxo de trabalho de destino precisa de um gatilho workflow_call
:
ativado: fluxo de trabalho_call:
Salve o fluxo de trabalho abaixo como .github/workflows/check-chrome-versions.yml
em seu repositório:
name: "[cron] Verifique as versões do Chrome" em: workflow_dispatch: agendamento: - cron: "0 * * * *" # https://crontab.guru/every-1-hourjobs: check-versions: runs-on: ubuntu-latest outputs: cache-hit: ${{ steps.cache.outputs .cache-hit }} env: # Você pode usar qualquer arquivo JSON aqui CHROME_VERSION_URL: Etapas "https://cdn.jsdelivr.net/gh/berstend/chrome-versions/data/stable/all/version/latest.json": - nome: Obtenha o hash das versões do 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 - nome: cache de configuração com base no id de hash: cache usa: actions/cache@v3 com: caminho: ~/cache-chrome-version # chave no-op: chrome-${{ steps.get-versions.outputs.hash } } - nome: "Cache hit: Exit" if: steps.cache.outputs.cache-hit == 'true' run: echo "cache hit, sem novas versões do Chrome" trigger-workflow: if: need.check-versions.outputs .cache-hit != 'true' necessidades: check-versions usa: ./.github/workflows/build.yml # Altere para seu fluxo de trabalho de destino
Altere ./.github/workflows/build.yml
para qualquer fluxo de trabalho que você deseja acionar nas novas versões do Chrome.
Solução de problemas:
Erros de permissão: os fluxos de trabalho herdam suas permissões do pai; se você definir permissões especiais em seu fluxo de trabalho de destino, precisará defini-las também no fluxo de trabalho acima
Erro "(...) fazer isso excederia o limite de profundidade de fluxo de trabalho chamado de 2" : Infelizmente, o Github não permite que fluxos de trabalho reutilizáveis chamem fluxos de trabalho reutilizáveis
dados ├──desenvolvedor │ ├── todos │ │ ├── informações │ │ │ ├── mais recente.json │ │ │ └── lista.json │ │ └── versão │ │ ├── mais recente.json │ │ └── lista.json │ ├── andróide │ │ ├── informações │ │ │ ├── mais recente.json │ │ │ └── lista.json │ │ └── versão │ │ ├── mais recente.json │ │ └── lista.json │ ├──Linux │ │ ├── informações │ │ │ ├── mais recente.json │ │ │ └── lista.json │ │ └── versão │ │ ├── mais recente.json │ │ └── lista.json │ ├──mac │ │ ├── informações │ │ │ ├── mais recente.json │ │ │ └── lista.json │ │ └── versão │ │ ├── mais recente.json │ │ └── lista.json │ └── janelas │ ├── informações │ │ ├── mais recente.json │ │ └── lista.json │ └── versão │ ├── mais recente.json │ └── lista.json └── estável ├── todos │ ├── informações │ │ ├── mais recente.json │ │ └── lista.json │ └── versão │ ├── mais recente.json │ └── lista.json ├── andróide │ ├── informações │ │ ├── mais recente.json │ │ └── lista.json │ └── versão │ ├── mais recente.json │ └── lista.json ├──Linux │ ├── informações │ │ ├── mais recente.json │ │ └── lista.json │ └── versão │ ├── mais recente.json │ └── lista.json ├──mac │ ├── informações │ │ ├── mais recente.json │ │ └── lista.json │ └── versão │ ├── mais recente.json │ └── lista.json └── janelas ├── informações │ ├── mais recente.json │ └── lista.json └── versão ├── mais recente.json └── lista.json
MIT