80 lines
1.9 KiB
YAML
80 lines
1.9 KiB
YAML
name: pr-size
|
|
|
|
on:
|
|
pull_request_target:
|
|
branches: [ MK3, MK3_* ]
|
|
|
|
env:
|
|
TARGETS: "MK3S_MULTILANG MK3_MULTILANG"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: write
|
|
|
|
steps:
|
|
|
|
# setup base required dependencies
|
|
- name: Setup dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install cmake ninja-build python3-pyelftools python3-regex python3-polib
|
|
|
|
# build the base branch
|
|
- name: Checkout base
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Cache Dependencies
|
|
uses: actions/cache@v4.0.0
|
|
id: cache-pkgs
|
|
with:
|
|
path: ".dependencies"
|
|
key: "build-deps-1_0_0-linux"
|
|
|
|
- name: Setup build dependencies
|
|
run: |
|
|
./utils/bootstrap.py
|
|
|
|
- name: Cache permissions
|
|
run: sudo chmod -R 744 .dependencies
|
|
|
|
- name: Build base
|
|
run: |
|
|
rm -rf build-base
|
|
mkdir build-base
|
|
cd build-base
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE="../cmake/AvrGcc.cmake" -DCMAKE_BUILD_TYPE=Release -G Ninja
|
|
ninja $TARGETS
|
|
|
|
# save pr-size for later use
|
|
- name: Save base data
|
|
run: |
|
|
cp -f ./.github/workflows/pr-size.sh build-base
|
|
|
|
# build the PR branch
|
|
- name: Checkout PR
|
|
uses: actions/checkout@v4
|
|
with:
|
|
clean: false
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Build PR
|
|
run: |
|
|
rm -rf build-pr
|
|
mkdir build-pr
|
|
cd build-pr
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE="../cmake/AvrGcc.cmake" -DCMAKE_BUILD_TYPE=Release -G Ninja
|
|
ninja $TARGETS
|
|
|
|
# extract/show build differences
|
|
- name: Calculate binary changes
|
|
run: |
|
|
rm -rf build-changes
|
|
./build-base/pr-size.sh build-changes build-base build-pr $TARGETS
|
|
|
|
- name: Add PR Comment
|
|
uses: mshick/add-pr-comment@v2
|
|
with:
|
|
message-path: build-changes
|