Merge pull request #4313 from wavexx/pr_size_target
CI: Automatically calculate PR "cost"
This commit is contained in:
commit
035da6d061
|
|
@ -26,11 +26,14 @@ avr_ram()
|
||||||
echo "This PR will consume:" > "$MESSAGE"
|
echo "This PR will consume:" > "$MESSAGE"
|
||||||
for TARGET in $@
|
for TARGET in $@
|
||||||
do
|
do
|
||||||
base_bin=$(echo ${BASE_DIR}/build_gen/*/$TARGET)
|
# strip the multilang prefix
|
||||||
|
variant=${TARGET%_MULTILANG}
|
||||||
|
|
||||||
|
base_bin=$(echo ${BASE_DIR}/build_gen/$variant/${variant}_lang_base)
|
||||||
base_flash=$(avr_flash "$base_bin")
|
base_flash=$(avr_flash "$base_bin")
|
||||||
base_ram=$(avr_ram "$base_bin")
|
base_ram=$(avr_ram "$base_bin")
|
||||||
|
|
||||||
pr_bin=$(echo ${PR_DIR}/build_gen/*/$TARGET)
|
pr_bin=$(echo ${PR_DIR}/build_gen/$variant/${variant}_lang_base)
|
||||||
pr_flash=$(avr_flash "$pr_bin")
|
pr_flash=$(avr_flash "$pr_bin")
|
||||||
pr_ram=$(avr_ram "$pr_bin")
|
pr_ram=$(avr_ram "$pr_bin")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,17 @@
|
||||||
name: pr-size
|
name: pr-size
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request_target:
|
||||||
branches: [ MK3, MK3_* ]
|
branches: [ MK3, MK3_* ]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TARGETS: "MK3S-EINSy10a_ENGLISH MK3-EINSy10a_ENGLISH"
|
TARGETS: "MK3S_MULTILANG MK3_MULTILANG"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
|
|
@ -18,34 +20,14 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get install cmake ninja-build python3-pyelftools python3-regex python3-polib
|
sudo apt-get install cmake ninja-build python3-pyelftools python3-regex python3-polib
|
||||||
|
|
||||||
# build the PR branch
|
# build the base branch
|
||||||
- name: Checkout PR
|
- name: Checkout base
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup build dependencies
|
- name: Setup build dependencies
|
||||||
run: |
|
run: |
|
||||||
./utils/bootstrap.py
|
./utils/bootstrap.py
|
||||||
|
|
||||||
- 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
|
|
||||||
|
|
||||||
# save pr-size for later use
|
|
||||||
- name: Save pr-size from PR
|
|
||||||
run: |
|
|
||||||
cp -f ./.github/workflows/pr-size.sh build-pr
|
|
||||||
|
|
||||||
# build the base branch
|
|
||||||
- name: Checkout base
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
clean: false
|
|
||||||
ref: ${{ github.event.pull_request.base.ref }}
|
|
||||||
|
|
||||||
- name: Build base
|
- name: Build base
|
||||||
run: |
|
run: |
|
||||||
rm -rf build-base
|
rm -rf build-base
|
||||||
|
|
@ -54,11 +36,31 @@ jobs:
|
||||||
cmake .. -DCMAKE_TOOLCHAIN_FILE="../cmake/AvrGcc.cmake" -DCMAKE_BUILD_TYPE=Release -G Ninja
|
cmake .. -DCMAKE_TOOLCHAIN_FILE="../cmake/AvrGcc.cmake" -DCMAKE_BUILD_TYPE=Release -G Ninja
|
||||||
ninja $TARGETS
|
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@v3
|
||||||
|
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
|
# extract/show build differences
|
||||||
- name: Calculate binary changes
|
- name: Calculate binary changes
|
||||||
run: |
|
run: |
|
||||||
rm -rf build-changes
|
rm -rf build-changes
|
||||||
./build-pr/pr-size.sh build-changes build-base build-pr $TARGETS
|
./build-base/pr-size.sh build-changes build-base build-pr $TARGETS
|
||||||
|
|
||||||
- name: Add PR Comment
|
- name: Add PR Comment
|
||||||
uses: mshick/add-pr-comment@v2
|
uses: mshick/add-pr-comment@v2
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue