Add Update GitHub Registry badge action
parent
fc38d42396
commit
dd952fcf7d
|
@ -0,0 +1,57 @@
|
|||
name: Update GitHub Registry badge
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 12 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-ghcr-badge:
|
||||
name: Update GitHub Registry badge
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: assets
|
||||
-
|
||||
name: Build badge
|
||||
id: build-badge
|
||||
run: |
|
||||
$response = Invoke-WebRequest -Uri https://github.com/mlocati/docker-php-extension-installer/pkgs/container/php-extension-installer -ErrorAction Stop
|
||||
$html = $response.Content -replace '\s+', ' '
|
||||
if (-not($html -match 'Total downloads.*?> *(?<count>\d+\w*)')) {
|
||||
throw 'Unable to find the total downloads count'
|
||||
}
|
||||
$count = $Matches.count
|
||||
Write-Host -Object "Current downloads count: $count"
|
||||
$response = Invoke-WebRequest -Uri https://img.shields.io/badge/GitHub_Registry_pulls-$count-066da5 -ErrorAction Stop
|
||||
$newBadge = $response.Content.Trim()
|
||||
Write-Host -Object "Badge source: $newBadge"
|
||||
$badgePath = 'assets/ghcr-badge.svg'
|
||||
$badgeUpdated = $true
|
||||
if (Test-Path -LiteralPath $badgePath -PathType Leaf) {
|
||||
$oldBadge = (Get-Content -LiteralPath $badgePath -Encoding utf8 -Raw).Trim()
|
||||
if ($oldBadge -eq $newBadge) {
|
||||
Write-Host -Object 'Badge is already up-to-date'
|
||||
$badgeUpdated = $false
|
||||
} else {
|
||||
Write-Host -Object 'Badge is updated'
|
||||
}
|
||||
} else {
|
||||
Write-Host -Object 'Badge is new'
|
||||
}
|
||||
if ($badgeUpdated) {
|
||||
Set-Content -LiteralPath $badgePath -Value $newBadge -NoNewline -Encoding utf8 -ErrorAction Stop
|
||||
'updated=yes' | Out-File -FilePath $env:GITHUB_OUTPUT -Append -Encoding utf8
|
||||
}
|
||||
-
|
||||
name: Commit
|
||||
if: steps.build-badge.outputs.updated == 'yes'
|
||||
run: |
|
||||
git add assets/ghcr-badge.svg
|
||||
git config user.name GitHub
|
||||
git config user.email noreply@github.com
|
||||
git commit -m 'Update GitHub Registry badge'
|
||||
git push
|
Loading…
Reference in New Issue