Skip to content

Commit

Permalink
Added GH Action to show FLASH diff using bloaty
Browse files Browse the repository at this point in the history
  • Loading branch information
alexcekay committed Oct 30, 2024
1 parent a3a83c7 commit 36432d1
Showing 1 changed file with 110 additions and 0 deletions.
110 changes: 110 additions & 0 deletions .github/workflows/flash_analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: FLASH usage analysis

on:
push:
branches:
- 'main'
pull_request:
branches:
- '*'

jobs:
analyze_flash:
name: FLASH usage analysis
runs-on: ubuntu-latest
container:
image: px4io/px4-dev-nuttx-focal
strategy:
matrix:
target: [px4_fmu-v5x, px4_fmu-v6x]
outputs:
px4_fmu-v5x: ${{ steps.gen-output.outputs.output_px4_fmu-v5x }}
px4_fmu-v6x: ${{ steps.gen-output.outputs.output_px4_fmu-v6x }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- name: Git ownership workaround
run: git config --system --add safe.directory '*'

- name: Build
run: make ${{ matrix.target }}

- name: Store the ELF with the change
run: cp ./build/${{ matrix.target }}_default/${{ matrix.target }}_default.elf ./with-change.elf

- name: Clean previous build
run: |
make clean
make distclean
- name: If it's a PR checkout the base commit
if: ${{ github.event.pull_request }}
run: git checkout ${{ github.event.pull_request.base.sha }}

- name: If it's a push checkout the previous commit
if: github.event_name == 'push'
run: git checkout ${{ github.event.before }}

- name: Update submodules
run: make submodulesupdate

- name: Build
run: make ${{ matrix.target }}

- name: Store the ELF before the change
run: cp ./build/${{ matrix.target }}_default/${{ matrix.target }}_default.elf ./before-change.elf

- name: bloaty-action
uses: carlosperate/[email protected]
id: bloaty-step
with:
bloaty-args: -d sections,compileunits -n 0 ./with-change.elf -- ./before-change.elf
output-to-summary: true

- name: Generate output
id: gen-output
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "output_${{ matrix.target }}<<$EOF" >> $GITHUB_OUTPUT
echo "${{ steps.bloaty-step.outputs.bloaty-output-encoded }}" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
post_pr_comment:
name: Post PR comment
runs-on: ubuntu-latest
needs: [analyze_flash]
steps:
- name: If it's a PR add a comment with the bloaty output
if: ${{ github.event.pull_request }}
uses: actions/github-script@v6
with:
script: |
const comment = [
'## FLASH Analysis',
'### px4_fmu-v5x',
'<details>',
'<summary>Bloaty output</summary>',
'',
'```',
`${{ needs.analyze_flash.outputs.px4_fmu-v5x }}`,
'```',
'</details>',
'',
'### px4_fmu-v6x',
'<details>',
'<summary>Bloaty output</summary>',
'',
'```',
`${{ needs.analyze_flash.outputs.px4_fmu-v6x }}`,
'```',
'</details>'
]
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment.join('\n')
})

0 comments on commit 36432d1

Please sign in to comment.