name: Metrics
on: [pull_request_target]

jobs:
  binary-size:
    runs-on: ubuntu-latest
    steps:
      - name: Install dependencies
        run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
      - name: Install ARM toolchain
        uses: numworks/setup-arm-toolchain@2020-q2
      - name: Checkout PR base
        uses: actions/checkout@v2
        with:
          submodules: recursive
          ref: ${{ github.event.pull_request.base.sha }}
          path: base
      - name: Build base
        run: make -j2 -C base epsilon.elf
      - name: Checkout PR head
        uses: actions/checkout@v2
        with:
          submodules: recursive
          ref: ${{ github.event.pull_request.head.sha }}
          path: head
      - name: Build head
        run: make -j2 -C head epsilon.elf
      - name: Retrieve binary size analysis
        id: binary_size
        run: echo "::set-output name=table::$(python3 head/build/metrics/binary_size.py base/output/release/device/n0110/epsilon.elf head/output/release/device/n0110/epsilon.elf --labels Base Head --sections .text .rodata .bss .data --custom 'Total (RAM)' .data .bss --custom 'Total (ROM)' .text .rodata .data --escape)"
      - name: Add comment
        uses: actions/github-script@v3.0.0
        with:
          script: |
            await github.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.payload.pull_request.number,
              body: `${{ steps.binary_size.outputs.table }}`,
            });
