Test new version wf
This commit is contained in:
parent
84ad6b86ee
commit
d7daf851b9
76
.github/workflows/get-versions-from-gh.yaml
vendored
Normal file
76
.github/workflows/get-versions-from-gh.yaml
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
name: Crawl Versions from newreleases.io
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
# Runs at 12:00 AM and 12:00 PM UTC
|
||||||
|
- cron: "0 0,12 * * *"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
crawl-versions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: community-scripts/ProxmoxVED
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
- name: Generate a token
|
||||||
|
id: generate-token
|
||||||
|
uses: actions/create-github-app-token@v1
|
||||||
|
with:
|
||||||
|
app-id: ${{ vars.APP_ID }}
|
||||||
|
private-key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
|
- name: Crawl from newreleases.io
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
scripts/get-gh-release.sh
|
||||||
|
|
||||||
|
- name: Commit JSON
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
|
||||||
|
run: |
|
||||||
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git config --global user.name "GitHub Actions[bot]"
|
||||||
|
git checkout -b update_versions || git checkout update_versions
|
||||||
|
git add frontend/public/json/versions.json
|
||||||
|
if git diff --cached --quiet; then
|
||||||
|
echo "No changes detected."
|
||||||
|
echo "changed=false" >> "$GITHUB_ENV"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "Changes detected:"
|
||||||
|
git diff --stat --cached
|
||||||
|
echo "changed=true" >> "$GITHUB_ENV"
|
||||||
|
fi
|
||||||
|
git commit -m "Update versions.json"
|
||||||
|
git push origin update_versions --force
|
||||||
|
gh pr create --title "[AUTOMATIC PR]Update versions.json" --body "Update versions.json, crawled from newreleases.io" --base main --head update_versions
|
||||||
|
|
||||||
|
- name: Approve pull request
|
||||||
|
if: env.changed == 'true'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
PR_NUMBER=$(gh pr list --head "update_versions" --json number --jq '.[].number')
|
||||||
|
if [ -n "$PR_NUMBER" ]; then
|
||||||
|
gh pr review $PR_NUMBER --approve
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Re-approve pull request after update
|
||||||
|
if: env.changed == 'true'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
PR_NUMBER=$(gh pr list --head "update_versions" --json number --jq '.[].number')
|
||||||
|
if [ -n "$PR_NUMBER" ]; then
|
||||||
|
gh pr review $PR_NUMBER --approve
|
||||||
|
fi
|
39
.github/workflows/scripts/get-gh-release.sh
vendored
Normal file
39
.github/workflows/scripts/get-gh-release.sh
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
INPUT_FILE="repos.txt"
|
||||||
|
OUTPUT_FILE="../../public/frontend/versions.json"
|
||||||
|
TMP_FILE="releases_tmp.json"
|
||||||
|
|
||||||
|
if [ -f "$OUTPUT_FILE" ]; then
|
||||||
|
cp "$OUTPUT_FILE" "$TMP_FILE"
|
||||||
|
else
|
||||||
|
echo "[]" > "$TMP_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
while IFS= read -r repo; do
|
||||||
|
echo "Checking $repo..."
|
||||||
|
|
||||||
|
response=$(curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/${repo}/releases/latest")
|
||||||
|
tag=$(echo "$response" | jq -r .tag_name)
|
||||||
|
date=$(echo "$response" | jq -r .published_at)
|
||||||
|
|
||||||
|
if [[ "$tag" == "null" || "$date" == "null" ]]; then
|
||||||
|
echo "No release found for $repo"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
existing_version=$(jq -r --arg name "$repo" '.[] | select(.name == $name) | .version' "$TMP_FILE")
|
||||||
|
|
||||||
|
if [[ "$existing_version" != "$tag" ]]; then
|
||||||
|
echo "New release for $repo: $tag"
|
||||||
|
jq --arg name "$repo" 'del(.[] | select(.name == $name))' "$TMP_FILE" > "$TMP_FILE.tmp" && mv "$TMP_FILE.tmp" "$TMP_FILE"
|
||||||
|
|
||||||
|
jq --arg name "$repo" --arg version "$tag" --arg date "$date" \
|
||||||
|
'. += [{"name": $name, "version": $version, "date": $date}]' "$TMP_FILE" > "$TMP_FILE.tmp" && mv "$TMP_FILE.tmp" "$TMP_FILE"
|
||||||
|
else
|
||||||
|
echo "No change for $repo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
done < "$INPUT_FILE"
|
||||||
|
|
||||||
|
mv "$TMP_FILE" "$OUTPUT_FILE"
|
168
.github/workflows/scripts/repos.txt
vendored
Normal file
168
.github/workflows/scripts/repos.txt
vendored
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
0xERR0R/blocky
|
||||||
|
aceberg/WatchYourLAN
|
||||||
|
actualbudget/actual-server
|
||||||
|
agl/jbig2enc
|
||||||
|
alexta69/metube
|
||||||
|
AlexxIT/go2rtc
|
||||||
|
apache/tika
|
||||||
|
ArtifexSoftware/ghostpdl-downloads
|
||||||
|
Athou/commafeed
|
||||||
|
authelia/authelia
|
||||||
|
azukaar/Cosmos-Server
|
||||||
|
bastienwirtz/homer
|
||||||
|
benjaminjonard/koillection
|
||||||
|
benzino77/tasmocompiler
|
||||||
|
blakeblackshear/frigate
|
||||||
|
bluenviron/mediamtx
|
||||||
|
BookStackApp/BookStack
|
||||||
|
browserless/chrome
|
||||||
|
Bubka/2FAuth
|
||||||
|
caddyserver/xcaddy
|
||||||
|
clusterzx/paperless-ai
|
||||||
|
cockpit-project/cockpit
|
||||||
|
community-scripts/ProxmoxVE
|
||||||
|
CorentinTh/it-tools
|
||||||
|
dani-garcia/bw_web_builds
|
||||||
|
dani-garcia/vaultwarden
|
||||||
|
deepch/RTSPtoWeb
|
||||||
|
diced/zipline
|
||||||
|
docker/compose
|
||||||
|
docmost/docmost
|
||||||
|
documenso/documenso
|
||||||
|
Dolibarr/dolibarr
|
||||||
|
donaldzou/WGDashboard
|
||||||
|
Donkie/Spoolman
|
||||||
|
duplicati/duplicati
|
||||||
|
ellite/wallos
|
||||||
|
ErsatzTV/ErsatzTV
|
||||||
|
evcc-io/evcc
|
||||||
|
excalidraw/excalidraw
|
||||||
|
Fallenbagel/jellyseerr
|
||||||
|
firefly-iii/firefly-iii
|
||||||
|
FlareSolverr/FlareSolverr
|
||||||
|
Forceu/barcodebuddy
|
||||||
|
Forceu/Gokapi
|
||||||
|
FreshRSS/FreshRSS
|
||||||
|
FunkeyFlo/ps5-mqtt
|
||||||
|
gethomepage/homepage
|
||||||
|
glanceapp/glance
|
||||||
|
glpi-project/glpi
|
||||||
|
gnmyt/myspeed
|
||||||
|
go-gitea/gitea
|
||||||
|
google-coral/test_data
|
||||||
|
gotify/server
|
||||||
|
gotson/komga
|
||||||
|
gristlabs/grist-core
|
||||||
|
grocy/grocy
|
||||||
|
hansmi/prometheus-paperless-exporter
|
||||||
|
hargata/lubelog
|
||||||
|
heiher/hev-socks5-server
|
||||||
|
henrygd/beszel
|
||||||
|
hivemq/hivemq-community-edition
|
||||||
|
hoarder-app/hoarder
|
||||||
|
homarr-labs/homarr
|
||||||
|
hywax/mafl
|
||||||
|
ie13/jbig2enc
|
||||||
|
immich-app/immich
|
||||||
|
inspircd/inspircd
|
||||||
|
intel-iot-devkit/sample-videos
|
||||||
|
ipfs/kubo
|
||||||
|
Jackett/Jackett
|
||||||
|
janeczku/calibre-web
|
||||||
|
jhuckaby/Cronicle
|
||||||
|
juanfont/headscale
|
||||||
|
Kareadita/Kavita
|
||||||
|
keycloak/keycloak
|
||||||
|
kimai/kimai
|
||||||
|
knadh/listmonk
|
||||||
|
Koenkk/zigbee2mqtt
|
||||||
|
Kometa-Team/Kometa
|
||||||
|
Kozea/Radicale
|
||||||
|
leiweibau/Pi
|
||||||
|
libusb/libusb
|
||||||
|
linkwarden/linkwarden
|
||||||
|
linuxserver/docker-paperless-ngx
|
||||||
|
linuxserver/Heimdall
|
||||||
|
Lissy93/dashy
|
||||||
|
louislam/uptime-kuma
|
||||||
|
Luligu/matterbridge
|
||||||
|
MagicMirrorOrg/MagicMirror
|
||||||
|
matze/wastebin
|
||||||
|
maxmind/geoipupdate
|
||||||
|
MediaBrowser/Emby
|
||||||
|
meilisearch/meilisearch
|
||||||
|
mikefarah/yq
|
||||||
|
minio/minio
|
||||||
|
monicahq/monica
|
||||||
|
morpheus65535/bazarr
|
||||||
|
motioneye-project/motioneye
|
||||||
|
msgbyte/tianji
|
||||||
|
mylar3/mylar3
|
||||||
|
navidrome/navidrome
|
||||||
|
netbox-community/netbox
|
||||||
|
NginxProxyManager/nginx-proxy-manager
|
||||||
|
NodeBB/NodeBB
|
||||||
|
ollama/ollama
|
||||||
|
Ombi-app/Ombi
|
||||||
|
openobserve/openobserve
|
||||||
|
openvinotoolkit/open_model_zoo
|
||||||
|
open-webui/open-webui
|
||||||
|
paperless-ngx/paperless-ngx
|
||||||
|
Part-DB/Part-DB-server
|
||||||
|
paymenter/paymenter
|
||||||
|
Pf2eToolsOrg/Pf2eTools
|
||||||
|
pgaskin/kepubify
|
||||||
|
phpipam/phpipam
|
||||||
|
pocketbase/pocketbase
|
||||||
|
pocket-id/pocket-id
|
||||||
|
PrivateBin/PrivateBin
|
||||||
|
projectsend/projectsend
|
||||||
|
prometheus/alertmanager
|
||||||
|
prometheus/prometheus
|
||||||
|
prometheus-pve/prometheus-pve-exporter
|
||||||
|
pymedusa/Medusa
|
||||||
|
rabbitmq/signing-keys
|
||||||
|
Requarks/wiki
|
||||||
|
revenz/Fenrus
|
||||||
|
rogerfar/rdt-client
|
||||||
|
rustdesk/rustdesk-server
|
||||||
|
sabnzbd/sabnzbd
|
||||||
|
sabre-io/baikal
|
||||||
|
sbondCo/Watcharr
|
||||||
|
schlagmichdoch/PairDrop
|
||||||
|
sct/overseerr
|
||||||
|
seanmorley15/AdventureLog
|
||||||
|
searxng/searxng
|
||||||
|
semaphoreui/semaphore
|
||||||
|
silverbulletmd/silverbullet
|
||||||
|
snipe/snipe-it
|
||||||
|
stackblitz-labs/bolt
|
||||||
|
Stirling-Tools/Stirling-PDF
|
||||||
|
stonith404/pingvin-share
|
||||||
|
Suwayomi/Suwayomi-Server
|
||||||
|
sysadminsmedia/homebox
|
||||||
|
TasmoAdmin/TasmoAdmin
|
||||||
|
Tautulli/Tautulli
|
||||||
|
thelounge/thelounge-deb
|
||||||
|
thomiceli/opengist
|
||||||
|
Threadfin/Threadfin
|
||||||
|
tobychui/zoraxy
|
||||||
|
toniebox-reverse-engineering/teddycloud
|
||||||
|
traccar/traccar
|
||||||
|
traefik/traefik
|
||||||
|
trapexit/mergerfs
|
||||||
|
TriliumNext/Notes
|
||||||
|
tteck/Proxmox
|
||||||
|
umami-software/umami
|
||||||
|
usememos/memos
|
||||||
|
vabene1111/recipes
|
||||||
|
ventoy/PXE
|
||||||
|
VictoriaMetrics/VictoriaMetrics
|
||||||
|
wavelog/wavelog
|
||||||
|
wger-project/wger
|
||||||
|
Y2Z/monolith
|
||||||
|
yt-dlp/yt-dlp
|
||||||
|
YuukanOO/seelf
|
||||||
|
zitadel/zitadel
|
||||||
|
znerol/prometheus-pve-exporter
|
||||||
|
zwave-js/zwave-js-ui
|
Loading…
x
Reference in New Issue
Block a user