summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml60
1 files changed, 51 insertions, 9 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 781d3b002..ded4e816c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -3,6 +3,7 @@ name: Build
on:
workflow_dispatch:
push:
+ branches: [master]
paths:
- 'src/**'
- 'examples/**'
@@ -29,6 +30,7 @@ on:
- '.github/workflows/ci_set_matrix.py'
release:
types: [ published ]
+
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
@@ -82,6 +84,7 @@ jobs:
build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.json)[matrix.toolchain]) }}
build-options: '--one-first'
upload-metrics: true
+ upload-artifacts: true
code-metrics:
needs: cmake
@@ -181,7 +184,6 @@ jobs:
# Build Make/CMake on Windows/MacOS
# ---------------------------------------
build-os:
- if: github.event_name == 'pull_request'
uses: ./.github/workflows/build_util.yml
strategy:
fail-fast: false
@@ -198,7 +200,8 @@ jobs:
# Zephyr
# ---------------------------------------
zephyr:
- if: github.event_name == 'push'
+ # skip zephyr build due to failed build, fix later
+ if: false
runs-on: ubuntu-latest
steps:
- name: Checkout TinyUSB
@@ -220,10 +223,8 @@ jobs:
# Run on PR only (hil-tinyusb), hil-hfp only run on non-forked PR
# ---------------------------------------
hil-build:
- if: |
- github.repository_owner == 'hathach' &&
- (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
needs: set-matrix
+ if: github.repository_owner == 'hathach'
uses: ./.github/workflows/build_util.yml
strategy:
fail-fast: false
@@ -242,7 +243,6 @@ jobs:
# self-hosted on local VM, for attached hardware checkout HIL_JSON
# ---------------------------------------
hil-tinyusb:
- if: github.repository_owner == 'hathach' && github.event_name != 'push'
needs: hil-build
runs-on: [ self-hosted, X64, hathach, hardware-in-the-loop ]
steps:
@@ -285,8 +285,7 @@ jobs:
hil-hfp:
if: |
github.repository_owner == 'hathach' &&
- github.event.pull_request.head.repo.fork == false &&
- github.event_name != 'push'
+ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
runs-on: [ self-hosted, Linux, X64, hifiphile ]
env:
IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
@@ -315,7 +314,50 @@ jobs:
run: python3 tools/get_deps.py $BUILD_ARGS
- name: Build
- run: python3 tools/build.py -j 4 --toolchain iar $BUILD_ARGS
+ run: python3 tools/build.py --toolchain iar $BUILD_ARGS
- name: Test on actual hardware (hardware in the loop)
run: python3 test/hil/hil_test.py hfp.json
+
+ # ---------------------------------------
+ # Membrowse Memory Analysis
+ # Push: always runs (uses identical for doc-only to maintain commit chain)
+ # PR: only runs if code changed (doc-only PRs skip entirely)
+ # ---------------------------------------
+ membrowse:
+ needs: cmake
+ permissions:
+ contents: read
+ actions: read
+ uses: ./.github/workflows/membrowse-report.yml
+ with:
+ code_changed: true
+ secrets: inherit
+
+ membrowse-comment:
+ needs: membrowse
+ # skip membrowse comment since it is too verbal
+ if: false && github.event_name == 'pull_request'
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ actions: read
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+
+ - name: Download report artifacts
+ id: download
+ uses: actions/download-artifact@v5
+ with:
+ pattern: membrowse-report-*
+ path: reports
+ merge-multiple: true
+ continue-on-error: true
+
+ - name: Upload Membrowse Comment Artifact
+ if: steps.download.outcome == 'success'
+ uses: actions/upload-artifact@v5
+ with:
+ name: membrowse-comment
+ path: reports/