Skip to content

Add impact on binary size as a comment to PRs #26

Add impact on binary size as a comment to PRs

Add impact on binary size as a comment to PRs #26

Workflow file for this run

name: Binary size difference
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
sizediff:
runs-on: ubuntu-22.04
steps:
# Prepare, install tools
- name: Add GOBIN to $PATH
run: |
echo "$HOME/go/bin" >> $GITHUB_PATH
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# submodules: true
#- name: Install apt dependencies
# run: |
# echo 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main' | sudo tee /etc/apt/sources.list.d/llvm.list
# wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
# sudo apt-get update
# sudo apt-get install --no-install-recommends -y \
# llvm-15-dev \
# clang-15 \
# libclang-15-dev \
# lld-15
#- name: Restore LLVM source cache
# uses: actions/cache@v3
# id: cache-llvm-source
# with:
# key: llvm-source-15-sizediff-v1
# path: |
# llvm-project/compiler-rt
#- name: Download LLVM source
# if: steps.cache-llvm-source.outputs.cache-hit != 'true'
# run: make llvm-source
#- name: Cache Go
# uses: actions/cache@v3
# with:
# key: go-cache-linux-sizediff-v1-${{ hashFiles('go.mod') }}
# path: |
# ~/.cache/go-build
# ~/go/pkg/mod
#- run: make gen-device -j4
#- name: Download drivers repo
# run: git clone https://github.com/tinygo-org/drivers.git
#- name: Pull other branches
# run: git fetch --recurse-submodules=no origin
# Compute sizes for the dev branch
- run: git status
- run: git log -10
- run: git show
- name: Save HEAD
run: git branch github-actions-saved-HEAD HEAD
- name: Checkout dev branch
run: git checkout --no-recurse-submodules `git merge-base HEAD origin/dev`
- run: git log -10
#- name: Build tinygo binary
# run: go install
#- name: Determine binary sizes on the dev branch
# run: (cd drivers; make smoke-test XTENSA=0 | tee sizes-dev.txt)
# Compute sizes for the PR branch
- run: git log -10 HEAD
- run: git log -10 origin/dev
- run: git merge-base HEAD origin/dev
- name: Checkout PR branch
run: git checkout --no-recurse-submodules github-actions-saved-HEAD
- run: git status
- run: git log -10
#- name: Build tinygo binary for the dev branch
# run: go install
#- name: Determine binary sizes on the dev branch
# run: (cd drivers; make smoke-test XTENSA=0 | tee sizes-dev.txt)
# Create comment
# TODO: add a summary, something like:
# - overall size difference (percent)
# - number of binaries that grew / shrank / remained the same
# - don't show the full diff when no binaries changed
#- name: Calculate size diff
# run: ./tools/sizediff drivers/sizes-dev.txt drivers/sizes-pr.txt | tee sizediff.txt
#- name: Create comment
# run: |
# echo "Size difference with the dev branch:" > comment.txt
# echo "<details><summary>Binary size difference</summary>" >> comment.txt
# echo "<pre>" >> comment.txt
# cat sizediff.txt >> comment.txt
# echo "</pre></details>" >> comment.txt
#- name: Comment contents
# run: cat comment.txt
#- name: Add comment
# uses: thollander/actions-comment-pull-request@v2
# with:
# filePath: comment.txt
# comment_tag: sizediff