72 lines
2.5 KiB
YAML
72 lines
2.5 KiB
YAML
name: Footprint Delta
|
|
|
|
on: pull_request
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
footprint-delta:
|
|
runs-on: ubuntu-20.04
|
|
if: github.repository == 'zephyrproject-rtos/zephyr'
|
|
container:
|
|
image: ghcr.io/zephyrproject-rtos/ci:v0.25.0
|
|
options: '--entrypoint /bin/bash'
|
|
strategy:
|
|
fail-fast: false
|
|
env:
|
|
ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.16.0
|
|
ZEPHYR_TOOLCHAIN_VARIANT: zephyr
|
|
steps:
|
|
- name: Apply container owner mismatch workaround
|
|
run: |
|
|
# FIXME: The owner UID of the GITHUB_WORKSPACE directory may not
|
|
# match the container user UID because of the way GitHub
|
|
# Actions runner is implemented. Remove this workaround when
|
|
# GitHub comes up with a fundamental fix for this problem.
|
|
git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
|
|
|
- name: Update PATH for west
|
|
run: |
|
|
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
|
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
fetch-depth: 0
|
|
|
|
- name: west setup
|
|
run: |
|
|
west init -l . || true
|
|
west config --global update.narrow true
|
|
west update 2>&1 1> west.update.log || west update 2>&1 1> west.update.log
|
|
|
|
- name: Detect Changes in Footprint
|
|
env:
|
|
BASE_REF: ${{ github.base_ref }}
|
|
run: |
|
|
export ZEPHYR_BASE=${PWD}
|
|
git config --global user.email "actions@zephyrproject.org"
|
|
git config --global user.name "Github Actions"
|
|
git remote -v
|
|
git rebase origin/${BASE_REF}
|
|
git checkout -b this_pr
|
|
west update
|
|
west build -b frdm_k64f tests/benchmarks/footprints -t ram_report
|
|
cp build/ram.json ram2.json
|
|
west build -b frdm_k64f tests/benchmarks/footprints -t rom_report
|
|
cp build/rom.json rom2.json
|
|
|
|
git checkout origin/${BASE_REF}
|
|
west update
|
|
west build -p always -b frdm_k64f tests/benchmarks/footprints -t ram_report
|
|
west build -b frdm_k64f tests/benchmarks/footprints -t rom_report
|
|
cp build/ram.json ram1.json
|
|
cp build/rom.json rom1.json
|
|
|
|
git checkout this_pr
|
|
./scripts/footprint/fpdiff.py ram1.json ram2.json
|
|
./scripts/footprint/fpdiff.py rom1.json rom2.json
|