amap_analyse.yml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. name: 'Analyze .map file with Amap'
  2. on:
  3. repository_dispatch:
  4. types: [make_map_analyse]
  5. env:
  6. TARGETS: f7
  7. FBT_TOOLCHAIN_PATH: /opt
  8. jobs:
  9. amap_analyse:
  10. runs-on: [self-hosted,FlipperZeroMacShell]
  11. timeout-minutes: 5
  12. steps:
  13. - name: 'Decontaminate previous build leftovers'
  14. run: |
  15. if [ -d .git ]; then
  16. git submodule status || git checkout "$(git rev-list --max-parents=0 HEAD | tail -n 1)"
  17. fi
  18. - name: 'Checkout code'
  19. uses: actions/checkout@v3
  20. with:
  21. fetch-depth: 0
  22. - name: 'Make artifacts directory'
  23. run: |
  24. rm -rf artifacts
  25. mkdir artifacts
  26. - name: 'Download build artifacts'
  27. run: |
  28. mkdir -p ~/.ssh
  29. ssh-keyscan -p ${{ secrets.RSYNC_DEPLOY_PORT }} -H ${{ secrets.RSYNC_DEPLOY_HOST }} > ~/.ssh/known_hosts
  30. echo "${{ secrets.RSYNC_DEPLOY_KEY }}" > deploy_key;
  31. chmod 600 ./deploy_key;
  32. rsync -avzP \
  33. -e 'ssh -p ${{ secrets.RSYNC_DEPLOY_PORT }} -i ./deploy_key' \
  34. ${{ secrets.RSYNC_DEPLOY_USER }}@${{ secrets.RSYNC_DEPLOY_HOST }}:"${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${{ github.event.client_payload.branch_name }}/" artifacts/;
  35. rm ./deploy_key;
  36. - name: 'Make .map file analyze'
  37. run: |
  38. cd artifacts/
  39. /Applications/amap/Contents/MacOS/amap -f "flipper-z-f7-firmware-${SUFFIX}.elf.map"
  40. - name: 'Upload report to DB'
  41. run: |
  42. source scripts/toolchain/fbtenv.sh
  43. get_size()
  44. {
  45. SECTION="$1";
  46. arm-none-eabi-size \
  47. -A artifacts/flipper-z-f7-firmware-$SUFFIX.elf \
  48. | grep "^$SECTION" | awk '{print $2}'
  49. }
  50. export BSS_SIZE="$(get_size ".bss")"
  51. export TEXT_SIZE="$(get_size ".text")"
  52. export RODATA_SIZE="$(get_size ".rodata")"
  53. export DATA_SIZE="$(get_size ".data")"
  54. export FREE_FLASH_SIZE="$(get_size ".free_flash")"
  55. python3 -m pip install mariadb==1.1.4
  56. python3 scripts/amap_mariadb_insert.py \
  57. ${{ secrets.AMAP_MARIADB_USER }} \
  58. ${{ secrets.AMAP_MARIADB_PASSWORD }} \
  59. ${{ secrets.AMAP_MARIADB_HOST }} \
  60. ${{ secrets.AMAP_MARIADB_PORT }} \
  61. ${{ secrets.AMAP_MARIADB_DATABASE }} \
  62. artifacts/flipper-z-f7-firmware-$SUFFIX.elf.map.all