Compare commits

6 Commits

Author SHA1 Message Date
Hermes
9993f54246 ci: trigger dual-delivery workflow after registration
All checks were successful
OTA build / build-ota (push) Successful in 7m3s
2026-08-30 19:15:30 -05:00
Hermes
9599aee713 fix: publish raw OTA files to rolling release with backup artifacts
Some checks failed
OTA build / build-ota (push) Has been cancelled
2026-08-30 18:22:36 -05:00
Hermes
83f99a51a9 ci: retry dual delivery OTA publish
All checks were successful
OTA build / build-ota (push) Successful in 7m51s
2026-08-30 18:01:23 -05:00
Hermes
e391961c8e fix: handle empty release asset delete responses
All checks were successful
OTA build / build-ota (push) Successful in 7m11s
2026-08-30 18:01:22 -05:00
Hermes
c80fc43c37 ci: trigger dual delivery OTA publish
Some checks failed
OTA build / build-ota (push) Failing after 7m15s
2026-08-30 17:50:48 -05:00
Hermes
42f72a5259 fix: keep backup OTA artifact alongside release assets
Some checks failed
OTA build / build-ota (push) Has been cancelled
2026-08-30 17:50:46 -05:00
3 changed files with 19 additions and 2 deletions

View File

@@ -49,6 +49,13 @@ jobs:
fi fi
find dist/ota -maxdepth 1 -type f | sort find dist/ota -maxdepth 1 -type f | sort
- name: Upload backup OTA artifact ZIP
uses: actions/upload-artifact@v3
with:
name: ota-files
path: dist/ota/*
if-no-files-found: error
- name: Publish raw OTA files to rolling release - name: Publish raw OTA files to rolling release
env: env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
@@ -86,7 +93,14 @@ jobs:
payload = None if data is None else json.dumps(data).encode() payload = None if data is None else json.dumps(data).encode()
r = Request(url, data=payload, headers=h, method=method) r = Request(url, data=payload, headers=h, method=method)
with urlopen(r, timeout=120) as resp: with urlopen(r, timeout=120) as resp:
return json.loads(resp.read().decode()) if resp.readable() else None body = resp.read()
if not body:
return None
text = body.decode()
try:
return json.loads(text)
except json.JSONDecodeError:
return text
try: try:
release = req(f"{api}/releases/tags/{tag}") release = req(f"{api}/releases/tags/{tag}")
@@ -103,7 +117,7 @@ jobs:
}) })
release_id = release['id'] release_id = release['id']
existing = req(f"{api}/releases/{release_id}/assets") existing = req(f"{api}/releases/{release_id}/assets") or []
for asset in existing: for asset in existing:
rid = asset['id'] rid = asset['id']
req(f"{api}/releases/{release_id}/assets/{rid}", method='DELETE') req(f"{api}/releases/{release_id}/assets/{rid}", method='DELETE')

View File

@@ -0,0 +1 @@
dual-delivery trigger 2026-08-30T19:15:30-05:00

View File

@@ -1 +1,3 @@
release asset trigger 2026-08-30T17:39:26-05:00 release asset trigger 2026-08-30T17:39:26-05:00
dual delivery trigger 2026-08-30T17:50:48-05:00
release asset retry 2026-08-30T18:01:23-05:00