77 description : " Optional tag name to upload assets to a release (example 'v1.2.3')"
88 required : false
99 push :
10- branches : [main]
10+ branches : [main, feature/handshake-serial, feature/handshake-serial-dev ]
1111 paths :
1212 - ' ESP32C5/main/main.c'
1313 - ' FLIPPER/**'
14+ - ' .github/workflows/**'
1415 release :
1516 types : [published, edited]
1617
@@ -323,100 +324,11 @@ jobs:
323324 env :
324325 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
325326
326- pages :
327- name : Pages Web Flasher
328- needs : [release, firmware, fap]
329- if : ${{ needs.release.result == 'success' }}
330- runs-on : ubuntu-24.04
331- permissions :
332- contents : read
333- pages : write
334- id-token : write
335- environment :
336- name : github-pages
337- url : ${{ steps.deployment.outputs.page_url }}
338- outputs :
339- page_url : ${{ steps.deployment.outputs.page_url }}
340- steps :
341- - name : Checkout
342- uses : actions/checkout@v4
343-
344- - name : Setup Pages
345- uses : actions/configure-pages@v4
346- with :
347- enablement : true
348-
349- - name : Resolve release tag
350- id : meta
351- env :
352- EVENT_TAG : ${{ github.event.release.tag_name }}
353- INPUT_TAG : ${{ inputs.release_tag }}
354- FW_VERSION : ${{ needs.firmware.outputs.fw_version }}
355- run : |
356- set -euo pipefail
357- TAG="${EVENT_TAG:-}"
358- if [ -z "$TAG" ]; then TAG="${INPUT_TAG:-}"; fi
359- if [ -z "$TAG" ]; then TAG="v${FW_VERSION}"; fi
360- echo "tag=$TAG" >> "$GITHUB_OUTPUT"
361- echo "Using tag: $TAG"
362-
363- - name : Download release assets
364- id : download
365- env :
366- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
367- run : |
368- set -euo pipefail
369- TAG="${{ steps.meta.outputs.tag }}"
370- rm -rf docs/firmware
371- mkdir -p docs/firmware
372-
373- gh release download "$TAG" -R "$GITHUB_REPOSITORY" --dir docs/firmware \
374- --pattern "bootloader.bin" \
375- --pattern "partition-table.bin" \
376- --pattern "projectZero*.bin"
377-
378- ls -lh docs/firmware
379-
380- if [ ! -f docs/firmware/projectZero.bin ]; then
381- alt=$(ls docs/firmware/projectZero-*.bin 2>/dev/null | head -n1 || true)
382- if [ -n "$alt" ]; then
383- cp "$alt" docs/firmware/projectZero.bin
384- fi
385- fi
386-
387- for f in bootloader.bin partition-table.bin projectZero.bin; do
388- if [ ! -f "docs/firmware/$f" ]; then
389- echo "Missing $f in release assets for tag ${TAG}" >&2
390- exit 1
391- fi
392- done
393-
394- fw_version=$(ls docs/firmware/projectZero-*.bin 2>/dev/null | head -n1 | xargs -n1 basename | sed -E 's/^projectZero-([^.]*)\\.bin$/\\1/')
395- if [ -z "$fw_version" ]; then
396- fw_version="${TAG}"
397- fi
398- echo "fw_version=$fw_version" >> "$GITHUB_OUTPUT"
399-
400- - name : Build manifest.json
401- env :
402- FW_VERSION : ${{ steps.download.outputs.fw_version }}
403- BUILD_TAG : ${{ steps.meta.outputs.tag }}
404- run : |
405- set -euo pipefail
406- python -c "import os, json; from pathlib import Path; version=os.getenv('FW_VERSION') or os.getenv('BUILD_TAG'); build=os.getenv('BUILD_TAG','manual'); manifest={'name':'projectZero ESP32-C5','version':version,'build':build,'chipFamily':'ESP32-C5','parts':[{'path':'firmware/bootloader.bin','offset':8192},{'path':'firmware/partition-table.bin','offset':32768},{'path':'firmware/projectZero.bin','offset':131072}]}; Path('docs/manifest.json').write_text(json.dumps(manifest, indent=2))"
407- - name : Upload Pages artifact
408- uses : actions/upload-pages-artifact@v3
409- with :
410- path : docs
411-
412- - name : Deploy to GitHub Pages
413- id : deployment
414- uses : actions/deploy-pages@v4
415-
416327 discord :
417328 name : Discord
418- needs : [release, firmware, fap, pages ]
329+ needs : [release, firmware, fap]
419330 runs-on : ubuntu-24.04
331+ if : ${{ needs.release.result == 'success' }}
420332 steps :
421333 - name : Notify Discord
422334 if : success()
@@ -427,7 +339,6 @@ jobs:
427339 FAP_VERSION : ${{ needs.fap.outputs.fap_version }}
428340 RELEASE_TAG : ${{ github.event.release.tag_name || inputs.release_tag || format('v{0}', needs.firmware.outputs.fw_version) }}
429341 REPO : ${{ github.repository }}
430- PAGES_URL : ${{ needs.pages.outputs.page_url || format('https://{0}.github.io/{1}/', github.repository_owner, github.event.repository.name) }}
431342 run : |
432343 set -euo pipefail
433344 if [ -z "$DISCORD_WEBHOOK" ]; then
@@ -441,7 +352,6 @@ jobs:
441352 FAP_ZIP="$BASE_URL/projectZero-faps-${FAP_VER}.zip"
442353 BUNDLE_ZIP="$BASE_URL/projectZero-${FW_VERSION}-with-fap-${FAP_VER}.zip"
443354 RELEASE_PAGE="https://github.com/$REPO/releases/tag/$TAG"
444- PAGES_LINK="${PAGES_URL:-https://${GITHUB_REPOSITORY%/*}.github.io/${GITHUB_REPOSITORY#*/}/}"
445355
446356 RELEASE_BODY=""
447357 if [ "${GITHUB_EVENT_NAME:-}" = "release" ] && [ -n "${GITHUB_EVENT_PATH:-}" ] && [ -f "${GITHUB_EVENT_PATH:-}" ]; then
@@ -453,12 +363,10 @@ jobs:
453363
454364 base_content=$(
455365 printf '%s\n' \
456- "JanOS" \
366+ "JanOS (LOCOSP fork) " \
457367 "Release ${TAG} published." \
458368 "Release page:" \
459369 "${RELEASE_PAGE}" \
460- "Web flasher:" \
461- "${PAGES_LINK}" \
462370 "JanOS (${FW_VERSION}):" \
463371 "${JANOS_ZIP}" \
464372 "FAPs (${FAP_VER}):" \
0 commit comments