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
Windows용 최신 Chrome 안정 버전:
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
트리거가 필요합니다.
켜짐: 작업흐름_호출:
아래 워크플로를 저장소에 .github/workflows/check-chrome-versions.yml
로 저장합니다.
name: "[cron] Chrome 버전 확인"on: Workflow_dispatch: 일정: - cron: "0 * * * *" # https://crontab.guru/every-1-hourjobs: check-versions: running-on: ubuntu-latest 출력: 캐시 히트: ${{ 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 이름 =hash::$hash" 쉘: bash - 이름: 해시 기반 캐시 설정 id: 캐시 사용: actions/cache@v3 with: path: ~/cache-chrome-version # no-op key: chrome-${{ steps.get-versions.outputs.hash } } - name: "캐시 적중: 종료" if: steps.cache.outputs.cache-hit == 'true' run: echo "캐시 적중, 새 Chrome 버전 없음" Trigger-workflow: if: need.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 │ ├── 리눅스 │ │ ├── 정보 │ │ │ ├── 최신.json │ │ │ └── list.json │ │ └── 버전 │ │ ├── 최신.json │ │ └── list.json │ ├── 맥 │ │ ├── 정보 │ │ │ ├── 최신.json │ │ │ └── list.json │ │ └── 버전 │ │ ├── 최신.json │ │ └── list.json │ └── 창 │ ├── 정보 │ │ ├── 최신.json │ │ └── list.json │ └── 버전 │ ├── 최신.json │ └── 목록.json └── 안정적 ├── 모두 │ ├── 정보 │ │ ├── 최신.json │ │ └── list.json │ └── 버전 │ ├── 최신.json │ └── 목록.json ├── 안드로이드 │ ├── 정보 │ │ ├── 최신.json │ │ └── list.json │ └── 버전 │ ├── 최신.json │ └── 목록.json ├── 리눅스 │ ├── 정보 │ │ ├── 최신.json │ │ └── list.json │ └── 버전 │ ├── 최신.json │ └── 목록.json ├── 맥 │ ├── 정보 │ │ ├── 최신.json │ │ └── list.json │ └── 버전 │ ├── 최신.json │ └── 목록.json └── 창문 ├── 정보 │ ├── 최신.json │ └── 목록.json └── 버전 ├── 최신.json └── 목록.json
MIT