Skip to content

Process Releases

Process Releases #6

Workflow file for this run

name: Process Releases
permissions:
contents: write
on:
workflow_dispatch:
jobs:
process_releases:
runs-on: ubuntu-latest
steps:
- name: Checkout releases branch
uses: actions/checkout@v3
with:
ref: releases
- name: Download release assets
run: |
curl -s https://api.github.com/repos/xyzroe/XZG/releases | jq -r '.[1:] | .[] | .assets[] | select(.name | test("XZG_\\d{8}.full.bin")) | .browser_download_url' | while read url; do
file_name=$(basename "$url")
version=${file_name%.full.bin}
version=${version:4}
mkdir -p "$version"
wget -O "$version/$file_name" "$url"
done
- name: Create manifests
env:
GITHUB_REPO: ${{ github.repository }}
run: |
base_url="https://raw.githubusercontent.com/${GITHUB_REPO}/releases"
for dir in *; do
version=$(basename "$dir")
file_path="${base_url}/${dir}/XZG_${version}.full.bin"
echo -e "{\n \"name\": \"XZG Firmware\",\n \"version\": \"$version\",\n \"builds\": [\n {\n \"chipFamily\": \"ESP32\",\n \"improv\": false,\n \"parts\": [\n {\n \"path\": \"$file_path\",\n \"offset\": 0\n }\n ]\n }\n ]\n}" > "$dir/manifest.json"
done
- name: Push changes
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
git add .
git commit -m "Update releases with new manifests and FW files"
git push