amap_analyse.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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: 'Get commit details'
  23. run: |
  24. export COMMIT_HASH=${{ github.event.client_payload.commit_hash }}
  25. export COMMIT_MSG=${{ github.event.client_payload.commit_msg }}
  26. export BRANCH_NAME=${{ github.event.client_payload.branch_name }}
  27. if [[ ${{ github.event.client_payload.event_type }} == "pr" ]]; then
  28. export PULL_ID=${{ github.event.client_payload.pull_id }}
  29. export PULL_NAME=${{ github.event.client_payload.pull_name }}
  30. fi
  31. - name: 'Make artifacts directory'
  32. run: |
  33. rm -rf artifacts
  34. mkdir artifacts
  35. - name: 'Download build artifacts'
  36. run: |
  37. mkdir -p ~/.ssh
  38. ssh-keyscan -p ${{ secrets.RSYNC_DEPLOY_PORT }} -H ${{ secrets.RSYNC_DEPLOY_HOST }} > ~/.ssh/known_hosts
  39. echo "${{ secrets.RSYNC_DEPLOY_KEY }}" > deploy_key;
  40. chmod 600 ./deploy_key;
  41. rsync -avzP \
  42. -e 'ssh -p ${{ secrets.RSYNC_DEPLOY_PORT }} -i ./deploy_key' \
  43. ${{ secrets.RSYNC_DEPLOY_USER }}@${{ secrets.RSYNC_DEPLOY_HOST }}:"${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${{ github.event.client_payload.branch_name }}/" artifacts/;
  44. rm ./deploy_key;
  45. - name: 'Make .map file analyze'
  46. run: |
  47. cd artifacts/
  48. /Applications/amap/Contents/MacOS/amap -f flipper-z-f7-firmware-${{ github.event.client_payload.suffix }}.elf.map
  49. - name: 'Upload report to DB'
  50. run: |
  51. source scripts/toolchain/fbtenv.sh
  52. get_size()
  53. {
  54. SECTION="$1";
  55. arm-none-eabi-size \
  56. -A artifacts/flipper-z-f7-firmware-$SUFFIX.elf \
  57. | grep "^$SECTION" | awk '{print $2}'
  58. }
  59. export BSS_SIZE="$(get_size ".bss")"
  60. export TEXT_SIZE="$(get_size ".text")"
  61. export RODATA_SIZE="$(get_size ".rodata")"
  62. export DATA_SIZE="$(get_size ".data")"
  63. export FREE_FLASH_SIZE="$(get_size ".free_flash")"
  64. python3 -m pip install mariadb==1.1.4
  65. python3 scripts/amap_mariadb_insert.py \
  66. ${{ secrets.AMAP_MARIADB_USER }} \
  67. ${{ secrets.AMAP_MARIADB_PASSWORD }} \
  68. ${{ secrets.AMAP_MARIADB_HOST }} \
  69. ${{ secrets.AMAP_MARIADB_PORT }} \
  70. ${{ secrets.AMAP_MARIADB_DATABASE }} \
  71. artifacts/flipper-z-f7-firmware-${{ github.event.client_payload.suffix }}.elf.map.all