mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2026-07-20 04:51:20 +00:00
CI: rename to 'Build & analyze', branch-based naming, tidy concurrency
- Workflow renamed 'PR build' -> 'Build & analyze' (job 'f7 firmware'). - Artifact/report tag is now <branch>-<sha8> (was pr<number>-<sha8>) so manual/dev runs name sensibly; '/' sanitized to '-'. - workflow_dispatch kept/documented for manual runs (incl. from dev once on the default branch). - Concurrency keyed on workflow + PR/ref with cancel-in-progress: a newer push/dispatch cancels the superseded run. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
48f303619c
commit
ac3cd98aff
@@ -1,5 +1,6 @@
|
||||
# PoC: build the firmware on every PR, publish it as a downloadable artifact, and
|
||||
# post a unified report comment (build status + flash budget + public-API changes).
|
||||
# Build & analyze: build the firmware on each PR (and on-demand via "Run workflow"),
|
||||
# publish it as a downloadable artifact, and post a unified report comment
|
||||
# (build status + flash budget + public-API changes).
|
||||
#
|
||||
# Scope (deliberately minimal):
|
||||
# * Builds the f7 "clean" flavor only (firmware + in-tree apps). The default/extra
|
||||
@@ -11,19 +12,21 @@
|
||||
# * The clean build also gates API drift: fbt fails if the exported API surface
|
||||
# changes without targets/*/api_symbols.csv being updated + version-bumped.
|
||||
#
|
||||
# PR comment: assumes PRs originate from this repo (not forks), so the default token
|
||||
# can post. The same report is always written to the Actions job summary.
|
||||
# (Fork PRs get a read-only token; commenting there would need a `workflow_run` job.)
|
||||
# Artifacts/reports are named by branch + short SHA, so manual runs from dev work too.
|
||||
# PR comment assumes PRs originate from this repo (not forks): the default token can
|
||||
# post. The same report is always written to the Actions job summary. (Fork PRs get a
|
||||
# read-only token; commenting there would need a `workflow_run` job.)
|
||||
|
||||
name: PR build
|
||||
name: Build & analyze
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
workflow_dispatch: # manual "Run workflow" button (appears once this is on the default branch)
|
||||
|
||||
# Supersede in-flight runs when a PR is updated.
|
||||
# Cancel an in-flight run when a newer commit (per PR) or dispatch (per ref)
|
||||
# supersedes it.
|
||||
concurrency:
|
||||
group: pr-build-${{ github.event.pull_request.number || github.ref }}
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
@@ -38,7 +41,7 @@ env:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build f7 (clean) + size & API report
|
||||
name: f7 firmware
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -54,14 +57,16 @@ jobs:
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
||||
SHA="${{ github.event.pull_request.head.sha }}"
|
||||
PR="${{ github.event.pull_request.number }}"
|
||||
REF="${{ github.head_ref }}"
|
||||
else
|
||||
SHA="${{ github.sha }}"
|
||||
PR="manual"
|
||||
REF="${{ github.ref_name }}"
|
||||
fi
|
||||
SHORT="${SHA:0:8}"
|
||||
echo "sha8=$SHORT" >> "$GITHUB_OUTPUT"
|
||||
echo "dist=pr${PR}-${SHORT}" >> "$GITHUB_OUTPUT"
|
||||
SAFE_REF="${REF//\//-}" # branch name, '/' -> '-' for artifact names
|
||||
echo "sha8=$SHORT" >> "$GITHUB_OUTPUT"
|
||||
echo "ref=$SAFE_REF" >> "$GITHUB_OUTPUT"
|
||||
echo "dist=${SAFE_REF}-${SHORT}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Build firmware (minimal / clean)
|
||||
id: build
|
||||
@@ -118,7 +123,7 @@ jobs:
|
||||
run: |
|
||||
{
|
||||
echo "<!-- unleashed-pr-report -->"
|
||||
echo "## 🤖 PR build — \`${{ steps.vars.outputs.dist }}\`"
|
||||
echo "## 🤖 Build & analyze — \`${{ steps.vars.outputs.ref }}\` @ \`${{ steps.vars.outputs.sha8 }}\`"
|
||||
echo ""
|
||||
if [ "${{ steps.build.outcome }}" = "success" ]; then
|
||||
echo "✅ **Firmware built** — artifact \`unleashed-fw-${{ steps.vars.outputs.dist }}\` ([run]($RUN_URL))"
|
||||
|
||||
Reference in New Issue
Block a user