Skip to content

Process Releases

Process Releases #7

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 and create manifest.json
run: |
base_url="https://raw.githubusercontent.com/${GITHUB_REPO}/releases"
curl -s https://api.github.com/repos/xyzroe/XZG/releases | jq -r '
.[] |
{tag_name, url: .assets[] | select(.name | test("XZG_\\d{8}.full.bin")).browser_download_url} |
"\(.tag_name);\(.url)"
' | while IFS=';' read -r tag_name url; do
file_name=$(basename "$url")
mkdir -p "$tag_name"
wget -O "$tag_name/$file_name" "$url"
file_path="${base_url}/${tag_name}/${file_name}"
echo -e "{\n \"name\": \"XZG Firmware\",\n \"version\": \"$tag_name\",\n \"builds\": [\n {\n \"chipFamily\": \"ESP32\",\n \"improv\": false,\n \"parts\": [\n {\n \"path\": \"$file_path\",\n \"offset\": 0\n }\n ]\n }\n ]\n}" > "$tag_name/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