Skip to content

Zephelin

Zephelin #113

Workflow file for this run

name: zephelin
run-name: Zephelin
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
env:
RENODE_VERSION: "renode_1.16.0+20250929gitc16006c94_amd64.deb"
DEBIAN_FRONTEND: noninteractive
CMAKE_PREFIX_PATH: /opt/toolchains
jobs:
Run-Benchmark:
runs-on: ubuntu-22.04
steps:
- name: Free space on runner
run: |
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ggc
sudo rm -rf /usr/local/.ghcup
- uses: actions/checkout@v4
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install dependencies
run: |
./scripts/ci/install_deps.sh
- name: Setup Zephyr
run: |
source ./scripts/ci/env.sh
./scripts/ci/setup_zephyr.sh
- name: Run Twister
run: |
source ./scripts/ci/env.sh
export ZPL_BASE="$(pwd)"
west twister -v -p max32690fthr/max32690/m4 -p stm32f746g_disco -T benchmark -j 1 --timeout-multiplier 3
- name: Run Benchmark
run: |
source ./scripts/ci/env.sh
python3 benchmark/scripts/extract_measurements.py twister-out results.json
python3 benchmark/scripts/generate_report.py results.json report.md
- uses: actions/upload-artifact@v4
if: always()
with:
name: "results"
path: |
results.json
report.md
Run-GatherTrace:
runs-on: ubuntu-22.04
steps:
- name: Free space on runner
run: |
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ggc
sudo rm -rf /usr/local/.ghcup
- uses: actions/checkout@v4
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install dependencies
run: ./scripts/ci/install_deps.sh
- name: Setup Zephyr
run: |
source ./scripts/ci/env.sh
./scripts/ci/setup_zephyr.sh
- name: Gather Traces
run: |
source ./scripts/ci/env.sh
./scripts/ci/gather_traces.sh
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: tef-traces
path: tef_*.json
Run-BuildDocs:
runs-on: ubuntu-22.04
needs:
- Run-GatherTrace
- Run-Benchmark
steps:
- name: Free space on runner
run: |
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ggc
sudo rm -rf /usr/local/.ghcup
- uses: actions/checkout@v4
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Clone and build Zephelin Trace Viewer
run: |
git clone --recursive https://github.com/antmicro/zephelin-trace-viewer.git
cd zephelin-trace-viewer
corepack enable
yarn
yarn build
mkdir -p ../docs/source/_static/trace_viewer
cp -r dist/* ../docs/source/_static/trace_viewer
cd ..
- name: Download traces
uses: actions/download-artifact@v4
with:
name: tef-traces
path: docs/source/_static/trace_viewer
- name: Download benchmark results
uses: actions/download-artifact@v4
with:
name: results
path: benchmark-results
- uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y texlive-full
python -m pip install -r docs/requirements.txt
- name: Generate documentation
run: |
mkdir -p docs/source/generated
cp benchmark-results/report.md docs/source/generated/benchmark-report.md
cd docs
make html latexpdf
cp build/latex/*.pdf build/html
cd -
- uses: actions/upload-artifact@v4
with:
name: gh-page
path: docs/build/html
- name: Deploy docs to GH Pages
if: github.event_name == 'push' && github.repository == 'antmicro/zephelin'
run: |
cd docs/build/html
touch .nojekyll
git init
cp ../../../.git/config ./.git/config
git add .
git config --local user.email "push@gha"
git config --local user.name "GHA"
git commit -am "update ${{ github.sha }}"
git push -u origin +HEAD:gh-pages
rm -rf .git