build: releases: Create releases for each ARCH

This commit is contained in:
remittor
2025-12-14 14:25:28 +03:00
parent 6aa114e87f
commit 029923bac7

View File

@@ -359,12 +359,6 @@ jobs:
ref: gh-pages
continue-on-error: true
- name: Checkout main if gh-pages missing
if: failure()
uses: actions/checkout@v4
with:
ref: main
- name: Save FULL releases.json
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -377,7 +371,7 @@ jobs:
https://api.github.com/repos/$OWNER/$REPO/releases \
> releases.json
- name: Generate filtered releases_XXX.json
- name: Generate releases_BRANCH.json
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OWNER: ${{ github.repository_owner }}
@@ -433,11 +427,40 @@ jobs:
>(jq '.zap1' > releases_zap1.json) \
>(jq '.zap2' > releases_zap2.json)
- name: Generate releases_BRANCH_ARCH.json
run: |
BRANCHES=("zap1" "zap2")
for ARCH in $(jq -r '.[] | .assets[].name | capture("^[^_]+_[^_]+_(?<arch>.+)\\.zip$").arch' releases.json | sort -u); do
for BRANCH in "${BRANCHES[@]}"; do
if [ "$BRANCH" == "zap1" ]; then
PREFIX="zapret "
else
PREFIX="zapret2 "
fi
jq --arg prefix "$PREFIX" --arg arch "$ARCH" '
sort_by(.created_at) | reverse
| map(select(.name | startswith($prefix)))
| .[0:20]
| map(
. as $release
| {
tag: $release.tag,
name: $release.name,
draft: $release.draft,
prerelease: $release.prerelease,
assets: ($release.assets | map(select(.name | test("_\($arch)\\.zip$"))))
}
)
| { generated_at: (now | todate), releases: . }
' releases.json > "releases_${BRANCH}_${ARCH}.json"
done
done
- name: Commit and push ALL releases.json
run: |
git config user.name "github-actions"
git config user.email "github-actions@github.com"
git checkout -B gh-pages
git add releases.json releases_zap1.json releases_zap2.json
git add releases.json releases_*.json
git commit -m "Update releases.json" || exit 0
git push origin gh-pages