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