mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-08 07:40:48 +02:00
Add lots more membrowse platforms
Lots more ARM Cortex, RiscV, AArch64, linuxkm and some Zephyr
This commit is contained in:
@@ -30,7 +30,7 @@ jobs:
|
||||
needs: load-targets
|
||||
if: github.repository_owner == 'wolfssl'
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 10
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -47,6 +47,7 @@ jobs:
|
||||
uses: ./.github/actions/install-apt-deps
|
||||
with:
|
||||
packages: ${{ matrix.apt_packages }}
|
||||
cache: ${{ matrix.apt_cache || 'true' }}
|
||||
|
||||
- name: Run Membrowse Onboard Action
|
||||
uses: membrowse/membrowse-action/onboard-action@v1
|
||||
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
needs: [load-targets, check-changes]
|
||||
if: github.repository_owner == 'wolfssl' && (github.event_name != 'pull_request' || needs.check-changes.outputs.needs_build == 'true')
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 10
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -86,6 +86,7 @@ jobs:
|
||||
uses: ./.github/actions/install-apt-deps
|
||||
with:
|
||||
packages: ${{ matrix.apt_packages }}
|
||||
cache: ${{ matrix.apt_cache || 'true' }}
|
||||
|
||||
- name: Build firmware
|
||||
if: needs.check-changes.outputs.needs_build == 'true'
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
name: Membrowse Zephyr Report
|
||||
|
||||
# Triggered after the heavy Zephyr 4.x test workflow completes. Pulls the
|
||||
# pre-built zephyr.elf, zephyr.map and linker.cmd artifacts staged by
|
||||
# zephyr-test.sh and feeds them to the Membrowse memory-tracking service.
|
||||
# This avoids duplicating the (slow) Zephyr build inside the Membrowse
|
||||
# matrix.
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: [Zephyr 4.x tests]
|
||||
types:
|
||||
- completed
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 10
|
||||
# Only run from the wolfssl org to avoid burning forks' CI minutes
|
||||
# and reporting fork builds to the membrowse backend.
|
||||
if: >
|
||||
github.event.workflow_run.conclusion == 'success' &&
|
||||
github.repository_owner == 'wolfssl'
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- target_name: zephyr-native_sim
|
||||
artifact: membrowse-zephyr-native_sim
|
||||
- target_name: zephyr-frdm_rw612
|
||||
artifact: membrowse-zephyr-frdm_rw612
|
||||
steps:
|
||||
# Check out the commit the Zephyr workflow actually built so Membrowse
|
||||
# attributes the report to the right commit. Only the last 2 commits
|
||||
# are needed (current + parent) to resolve the base for comparison.
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ github.event.workflow_run.head_sha }}
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Download Zephyr build artifact
|
||||
id: download
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.artifact }}
|
||||
path: zephyr-artifacts/${{ matrix.target_name }}
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: Verify artifact present
|
||||
id: verify
|
||||
run: |
|
||||
ELF="zephyr-artifacts/${{ matrix.target_name }}/zephyr.elf"
|
||||
LD="zephyr-artifacts/${{ matrix.target_name }}/linker.cmd"
|
||||
MAP="zephyr-artifacts/${{ matrix.target_name }}/zephyr.map"
|
||||
if [[ -f "$ELF" && -f "$LD" ]]; then
|
||||
echo "have_artifacts=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "have_artifacts=false" >> "$GITHUB_OUTPUT"
|
||||
echo "::warning::Membrowse artifact for ${{ matrix.target_name }} not found; the matching cell of zephyr-4.x.yml may have been skipped or excluded."
|
||||
fi
|
||||
# The map file is optional; it enables library/object attribution.
|
||||
if [[ -f "$MAP" ]]; then
|
||||
echo "map_file=$MAP" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "map_file=" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Run Membrowse PR Action
|
||||
if: steps.verify.outputs.have_artifacts == 'true'
|
||||
uses: membrowse/membrowse-action@v1
|
||||
with:
|
||||
target_name: ${{ matrix.target_name }}
|
||||
elf: zephyr-artifacts/${{ matrix.target_name }}/zephyr.elf
|
||||
ld: zephyr-artifacts/${{ matrix.target_name }}/linker.cmd
|
||||
map_file: ${{ steps.verify.outputs.map_file }}
|
||||
linker_vars: ""
|
||||
api_key: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
api_url: ${{ vars.MEMBROWSE_API_URL }}
|
||||
verbose: INFO
|
||||
|
||||
# Refresh the consolidated Membrowse PR comment after the Zephyr targets
|
||||
# have been submitted, mirroring membrowse-comment.yml.
|
||||
post-comment:
|
||||
needs: analyze
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 10
|
||||
if: >
|
||||
github.event.workflow_run.event == 'pull_request' &&
|
||||
github.repository_owner == 'wolfssl'
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Post Membrowse PR comment
|
||||
if: ${{ env.MEMBROWSE_API_KEY != '' }}
|
||||
uses: membrowse/membrowse-action/comment-action@v1
|
||||
with:
|
||||
api_key: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
commit: ${{ github.event.workflow_run.head_sha }}
|
||||
env:
|
||||
MEMBROWSE_API_KEY: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -79,3 +79,22 @@ jobs:
|
||||
path: .github/scripts/zephyr-4.x/logs/
|
||||
retention-days: 5
|
||||
if-no-files-found: ignore
|
||||
|
||||
# Stage Membrowse artifacts only for the cells we want to track on the
|
||||
# Membrowse dashboard. Keep this tight to avoid duplicate target_name
|
||||
# entries on the dashboard and unnecessary artifact uploads.
|
||||
- name: Upload Membrowse artifacts (selected cells only)
|
||||
if: >
|
||||
success() &&
|
||||
matrix.zephyr-ref == 'v4.3.0' &&
|
||||
matrix.sample == 'wolfssl_test' &&
|
||||
matrix.extra-conf == ''
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: membrowse-zephyr-${{ matrix.board == 'native_sim' && 'native_sim' || 'frdm_rw612' }}
|
||||
path: |
|
||||
.github/scripts/zephyr-4.x/artifacts/${{ matrix.board == 'native_sim' && 'native_sim' || 'frdm_rw612-rw612' }}-wolfssl_test/zephyr.elf
|
||||
.github/scripts/zephyr-4.x/artifacts/${{ matrix.board == 'native_sim' && 'native_sim' || 'frdm_rw612-rw612' }}-wolfssl_test/linker.cmd
|
||||
.github/scripts/zephyr-4.x/artifacts/${{ matrix.board == 'native_sim' && 'native_sim' || 'frdm_rw612-rw612' }}-wolfssl_test/zephyr.map
|
||||
if-no-files-found: warn
|
||||
retention-days: 1
|
||||
|
||||
Reference in New Issue
Block a user