| 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-22.04 |
| if: github.repository == 'zephyrproject-rtos/zephyr' |
| container: |
| image: ghcr.io/zephyrproject-rtos/ci:v0.26.4 |
| options: '--entrypoint /bin/bash' |
| strategy: |
| fail-fast: false |
| env: |
| ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.16.1 |
| 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 |