Previously the code size comparison was between the merge base (i.e. where the PR branched), and the generated merge commit into master. If the PR branch was older than current master, this meant the size comparison could incorrectly include changes already merged on master but missing from the PR branch. This commit changes it to compare the generated merge commit against current master, i.e. the size impact if this PR was to be merged. This commit also disables running the code size check on "push", it now only runs on pull_request events. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
51 lines
1.2 KiB
YAML
51 lines
1.2 KiB
YAML
name: Check code size
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/*.yml'
|
|
- 'tools/**'
|
|
- 'py/**'
|
|
- 'extmod/**'
|
|
- 'shared/**'
|
|
- 'lib/**'
|
|
- 'ports/bare-arm/**'
|
|
- 'ports/mimxrt/**'
|
|
- 'ports/minimal/**'
|
|
- 'ports/rp2/**'
|
|
- 'ports/samd/**'
|
|
- 'ports/stm32/**'
|
|
- 'ports/unix/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 100
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_code_size_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_code_size_build
|
|
- name: Compute code size difference
|
|
run: tools/metrics.py diff ~/size0 ~/size1 | tee diff
|
|
- name: Save PR number
|
|
if: github.event_name == 'pull_request'
|
|
env:
|
|
PR_NUMBER: ${{ github.event.number }}
|
|
run: echo $PR_NUMBER > pr_number
|
|
- name: Upload diff
|
|
if: github.event_name == 'pull_request'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: code-size-report
|
|
path: |
|
|
diff
|
|
pr_number
|
|
retention-days: 1
|