[CI] Get sizes from push workflow, updated build scripts (#9524)
* Remove event-file from External libs wf * Add compilation log to the build scripts * Add 2nd compilation run on base branch * Fix sketch_utils script * Update on-push.sh * Update Push workflow * Upload pr number in lib.yml * Fix PR number in publish sizes * Update external libs results with pr num file
This commit is contained in:
parent
e33543c7ea
commit
0219c213ce
6 changed files with 215 additions and 31 deletions
38
.github/scripts/on-push.sh
vendored
38
.github/scripts/on-push.sh
vendored
|
|
@ -9,7 +9,8 @@ function build(){
|
||||||
local fqbn=$2
|
local fqbn=$2
|
||||||
local chunk_index=$3
|
local chunk_index=$3
|
||||||
local chunks_cnt=$4
|
local chunks_cnt=$4
|
||||||
shift; shift; shift; shift;
|
local build_log=$5
|
||||||
|
shift; shift; shift; shift; shift;
|
||||||
local sketches=$*
|
local sketches=$*
|
||||||
|
|
||||||
local BUILD_SKETCH="${SCRIPTS_DIR}/sketch_utils.sh build"
|
local BUILD_SKETCH="${SCRIPTS_DIR}/sketch_utils.sh build"
|
||||||
|
|
@ -22,6 +23,9 @@ function build(){
|
||||||
if [ "$OS_IS_LINUX" == "1" ]; then
|
if [ "$OS_IS_LINUX" == "1" ]; then
|
||||||
args+=" -p $ARDUINO_ESP32_PATH/libraries"
|
args+=" -p $ARDUINO_ESP32_PATH/libraries"
|
||||||
args+=" -i $chunk_index -m $chunks_cnt"
|
args+=" -i $chunk_index -m $chunks_cnt"
|
||||||
|
if [ $build_log -eq 1 ]; then
|
||||||
|
args+=" -l $build_log"
|
||||||
|
fi
|
||||||
${BUILD_SKETCHES} ${args}
|
${BUILD_SKETCHES} ${args}
|
||||||
else
|
else
|
||||||
for sketch in ${sketches}; do
|
for sketch in ${sketches}; do
|
||||||
|
|
@ -45,6 +49,7 @@ fi
|
||||||
|
|
||||||
CHUNK_INDEX=$1
|
CHUNK_INDEX=$1
|
||||||
CHUNKS_CNT=$2
|
CHUNKS_CNT=$2
|
||||||
|
BUILD_LOG=$3
|
||||||
BUILD_PIO=0
|
BUILD_PIO=0
|
||||||
if [ "$#" -lt 2 ] || [ "$CHUNKS_CNT" -le 0 ]; then
|
if [ "$#" -lt 2 ] || [ "$CHUNKS_CNT" -le 0 ]; then
|
||||||
CHUNK_INDEX=0
|
CHUNK_INDEX=0
|
||||||
|
|
@ -55,6 +60,10 @@ elif [ "$CHUNK_INDEX" -eq "$CHUNKS_CNT" ]; then
|
||||||
BUILD_PIO=1
|
BUILD_PIO=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$BUILD_LOG" -le 0 ]; then
|
||||||
|
BUILD_LOG=0
|
||||||
|
fi
|
||||||
|
|
||||||
#echo "Updating submodules ..."
|
#echo "Updating submodules ..."
|
||||||
#git -C "$GITHUB_WORKSPACE" submodule update --init --recursive > /dev/null 2>&1
|
#git -C "$GITHUB_WORKSPACE" submodule update --init --recursive > /dev/null 2>&1
|
||||||
|
|
||||||
|
|
@ -77,13 +86,28 @@ if [ "$BUILD_PIO" -eq 0 ]; then
|
||||||
$ARDUINO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino\
|
$ARDUINO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino\
|
||||||
$ARDUINO_ESP32_PATH/libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino\
|
$ARDUINO_ESP32_PATH/libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino\
|
||||||
"
|
"
|
||||||
|
#create sizes_file
|
||||||
|
sizes_file="$GITHUB_WORKSPACE/cli_compile_$CHUNK_INDEX.json"
|
||||||
|
|
||||||
build "esp32s3" $FQBN_ESP32S3 $CHUNK_INDEX $CHUNKS_CNT $SKETCHES_ESP32
|
if [ "$BUILD_LOG" -eq 1 ]; then
|
||||||
build "esp32s2" $FQBN_ESP32S2 $CHUNK_INDEX $CHUNKS_CNT $SKETCHES_ESP32
|
#create sizes_file and echo start of JSON array with "boards" key
|
||||||
build "esp32c3" $FQBN_ESP32C3 $CHUNK_INDEX $CHUNKS_CNT $SKETCHES_ESP32
|
echo "{\"boards\": [" > $sizes_file
|
||||||
build "esp32c6" $FQBN_ESP32C6 $CHUNK_INDEX $CHUNKS_CNT $SKETCHES_ESP32
|
fi
|
||||||
build "esp32h2" $FQBN_ESP32H2 $CHUNK_INDEX $CHUNKS_CNT $SKETCHES_ESP32
|
|
||||||
build "esp32" $FQBN_ESP32 $CHUNK_INDEX $CHUNKS_CNT $SKETCHES_ESP32
|
#build sketches for different targets
|
||||||
|
build "esp32s3" $FQBN_ESP32S3 $CHUNK_INDEX $CHUNKS_CNT $BUILD_LOG $SKETCHES_ESP32
|
||||||
|
build "esp32s2" $FQBN_ESP32S2 $CHUNK_INDEX $CHUNKS_CNT $BUILD_LOG $SKETCHES_ESP32
|
||||||
|
build "esp32c3" $FQBN_ESP32C3 $CHUNK_INDEX $CHUNKS_CNT $BUILD_LOG $SKETCHES_ESP32
|
||||||
|
build "esp32c6" $FQBN_ESP32C6 $CHUNK_INDEX $CHUNKS_CNT $BUILD_LOG $SKETCHES_ESP32
|
||||||
|
build "esp32h2" $FQBN_ESP32H2 $CHUNK_INDEX $CHUNKS_CNT $BUILD_LOG $SKETCHES_ESP32
|
||||||
|
build "esp32" $FQBN_ESP32 $CHUNK_INDEX $CHUNKS_CNT $BUILD_LOG $SKETCHES_ESP32
|
||||||
|
|
||||||
|
if [ "$BUILD_LOG" -eq 1 ]; then
|
||||||
|
#remove last comma from the last JSON object
|
||||||
|
sed -i '$ s/.$//' "$sizes_file"
|
||||||
|
#echo end of JSON array
|
||||||
|
echo "]}" >> $sizes_file
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
source ${SCRIPTS_DIR}/install-platformio-esp32.sh
|
source ${SCRIPTS_DIR}/install-platformio-esp32.sh
|
||||||
# PlatformIO ESP32 Test
|
# PlatformIO ESP32 Test
|
||||||
|
|
|
||||||
70
.github/scripts/sketch_utils.sh
vendored
70
.github/scripts/sketch_utils.sh
vendored
|
|
@ -27,6 +27,14 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
|
||||||
shift
|
shift
|
||||||
sketchdir=$1
|
sketchdir=$1
|
||||||
;;
|
;;
|
||||||
|
-i )
|
||||||
|
shift
|
||||||
|
chunk_index=$1
|
||||||
|
;;
|
||||||
|
-l )
|
||||||
|
shift
|
||||||
|
log_compilation=$1
|
||||||
|
;;
|
||||||
* )
|
* )
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
|
@ -140,6 +148,9 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
|
||||||
build_dir="$HOME/.arduino/tests/$sketchname/build.tmp"
|
build_dir="$HOME/.arduino/tests/$sketchname/build.tmp"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
output_file="$HOME/.arduino/cli_compile_output.txt"
|
||||||
|
sizes_file="$GITHUB_WORKSPACE/cli_compile_$chunk_index.json"
|
||||||
|
|
||||||
mkdir -p "$ARDUINO_CACHE_DIR"
|
mkdir -p "$ARDUINO_CACHE_DIR"
|
||||||
for i in `seq 0 $(($len - 1))`
|
for i in `seq 0 $(($len - 1))`
|
||||||
do
|
do
|
||||||
|
|
@ -164,13 +175,39 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
|
||||||
--build-property "compiler.warning_flags.all=-Wall -Werror=all -Wextra" \
|
--build-property "compiler.warning_flags.all=-Wall -Werror=all -Wextra" \
|
||||||
--build-cache-path "$ARDUINO_CACHE_DIR" \
|
--build-cache-path "$ARDUINO_CACHE_DIR" \
|
||||||
--build-path "$build_dir" \
|
--build-path "$build_dir" \
|
||||||
$xtra_opts "${sketchdir}"
|
$xtra_opts "${sketchdir}" \
|
||||||
|
> $output_file
|
||||||
|
|
||||||
exit_status=$?
|
exit_status=$?
|
||||||
if [ $exit_status -ne 0 ]; then
|
if [ $exit_status -ne 0 ]; then
|
||||||
echo ""ERROR: Compilation failed with error code $exit_status""
|
echo ""ERROR: Compilation failed with error code $exit_status""
|
||||||
exit $exit_status
|
exit $exit_status
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $log_compilation ]; then
|
||||||
|
#Extract the program storage space and dynamic memory usage in bytes and percentage in separate variables from the output, just the value without the string
|
||||||
|
flash_bytes=$(grep -oE 'Sketch uses ([0-9]+) bytes' $output_file | awk '{print $3}')
|
||||||
|
flash_percentage=$(grep -oE 'Sketch uses ([0-9]+) bytes \(([0-9]+)%\)' $output_file | awk '{print $5}' | tr -d '(%)')
|
||||||
|
ram_bytes=$(grep -oE 'Global variables use ([0-9]+) bytes' $output_file | awk '{print $4}')
|
||||||
|
ram_percentage=$(grep -oE 'Global variables use ([0-9]+) bytes \(([0-9]+)%\)' $output_file | awk '{print $6}' | tr -d '(%)')
|
||||||
|
|
||||||
|
# Extract the directory path excluding the filename
|
||||||
|
directory_path=$(dirname "$sketch")
|
||||||
|
# Define the constant part
|
||||||
|
constant_part="/home/runner/Arduino/hardware/espressif/esp32/libraries/"
|
||||||
|
# Extract the desired substring using sed
|
||||||
|
lib_sketch_name=$(echo "$directory_path" | sed "s|$constant_part||")
|
||||||
|
#append json file where key is fqbn, sketch name, sizes -> extracted values
|
||||||
|
echo "{\"name\": \"$lib_sketch_name\",
|
||||||
|
\"sizes\": [{
|
||||||
|
\"flash_bytes\": $flash_bytes,
|
||||||
|
\"flash_percentage\": $flash_percentage,
|
||||||
|
\"ram_bytes\": $ram_bytes,
|
||||||
|
\"ram_percentage\": $ram_percentage
|
||||||
|
}]
|
||||||
|
}," >> "$sizes_file"
|
||||||
|
fi
|
||||||
|
|
||||||
elif [ -f "$ide_path/arduino-builder" ]; then
|
elif [ -f "$ide_path/arduino-builder" ]; then
|
||||||
echo "Building $sketchname with arduino-builder and FQBN=$currfqbn"
|
echo "Building $sketchname with arduino-builder and FQBN=$currfqbn"
|
||||||
echo "Build path = $build_dir"
|
echo "Build path = $build_dir"
|
||||||
|
|
@ -204,6 +241,7 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
|
||||||
# $xtra_opts "${sketchdir}/${sketchname}.ino"
|
# $xtra_opts "${sketchdir}/${sketchname}.ino"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
unset fqbn
|
unset fqbn
|
||||||
unset xtra_opts
|
unset xtra_opts
|
||||||
unset options
|
unset options
|
||||||
|
|
@ -277,6 +315,10 @@ function build_sketches(){ # build_sketches <ide_path> <user_path> <target> <pat
|
||||||
shift
|
shift
|
||||||
chunk_max=$1
|
chunk_max=$1
|
||||||
;;
|
;;
|
||||||
|
-l )
|
||||||
|
shift
|
||||||
|
log_compilation=$1
|
||||||
|
;;
|
||||||
* )
|
* )
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
|
@ -340,8 +382,19 @@ function build_sketches(){ # build_sketches <ide_path> <user_path> <target> <pat
|
||||||
echo "Start Sketch: $start_num"
|
echo "Start Sketch: $start_num"
|
||||||
echo "End Sketch : $end_index"
|
echo "End Sketch : $end_index"
|
||||||
|
|
||||||
|
sizes_file="$GITHUB_WORKSPACE/cli_compile_$chunk_index.json"
|
||||||
|
if [ $log_compilation ]; then
|
||||||
|
#echo board,target and start of sketches to sizes_file json
|
||||||
|
echo "{ \"board\": \"$fqbn\",
|
||||||
|
\"target\": \"$target\",
|
||||||
|
\"sketches\": [" >> "$sizes_file"
|
||||||
|
fi
|
||||||
|
|
||||||
local sketchnum=0
|
local sketchnum=0
|
||||||
args+=" -ai $ide_path -au $user_path"
|
args+=" -ai $ide_path -au $user_path -i $chunk_index"
|
||||||
|
if [ $log_compilation ]; then
|
||||||
|
args+=" -l $log_compilation"
|
||||||
|
fi
|
||||||
for sketch in $sketches; do
|
for sketch in $sketches; do
|
||||||
local sketchdir=$(dirname $sketch)
|
local sketchdir=$(dirname $sketch)
|
||||||
local sketchdirname=$(basename $sketchdir)
|
local sketchdirname=$(basename $sketchdir)
|
||||||
|
|
@ -358,6 +411,18 @@ function build_sketches(){ # build_sketches <ide_path> <user_path> <target> <pat
|
||||||
return $result
|
return $result
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ $log_compilation ]; then
|
||||||
|
#remove last comma from json
|
||||||
|
if [ $i -eq $(($len - 1)) ]; then
|
||||||
|
sed -i '$ s/.$//' "$sizes_file"
|
||||||
|
fi
|
||||||
|
#echo end of sketches sizes_file json
|
||||||
|
echo "]" >> "$sizes_file"
|
||||||
|
#echo end of board sizes_file json
|
||||||
|
echo "}," >> "$sizes_file"
|
||||||
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -389,4 +454,3 @@ case "$cmd" in
|
||||||
echo "$USAGE"
|
echo "$USAGE"
|
||||||
exit 2
|
exit 2
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
||||||
25
.github/workflows/lib.yml
vendored
25
.github/workflows/lib.yml
vendored
|
|
@ -122,15 +122,20 @@ jobs:
|
||||||
git commit -m "Generated External Libraries Test Results"
|
git commit -m "Generated External Libraries Test Results"
|
||||||
git push origin HEAD:gh-pages
|
git push origin HEAD:gh-pages
|
||||||
|
|
||||||
event_file:
|
#Upload PR number as artifact
|
||||||
name: "Event File"
|
upload-pr-number:
|
||||||
if: |
|
name: Upload PR number
|
||||||
contains(github.event.pull_request.labels.*.name, 'lib_test')
|
if: github.event_name == 'pull_request'
|
||||||
needs: compile-sketch
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Upload
|
- name: Save the PR number in an artifact
|
||||||
uses: actions/upload-artifact@v4
|
shell: bash
|
||||||
with:
|
env:
|
||||||
name: Event File
|
PR_NUM: ${{ github.event.number }}
|
||||||
path: ${{github.event_path}}
|
run: echo $PR_NUM > pr_num.txt
|
||||||
|
- name: Upload PR number
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: pr_number
|
||||||
|
path: ./pr_num.txt
|
||||||
|
overwrite: true
|
||||||
|
|
|
||||||
16
.github/workflows/publishlib.yml
vendored
16
.github/workflows/publishlib.yml
vendored
|
|
@ -11,7 +11,6 @@ env:
|
||||||
# It's convenient to set variables for values used multiple times in the workflow
|
# It's convenient to set variables for values used multiple times in the workflow
|
||||||
SKETCHES_REPORTS_PATH: artifacts/libraries-report
|
SKETCHES_REPORTS_PATH: artifacts/libraries-report
|
||||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
PR_NUMBER: ${{ github.event.workflow_run.pull_requests[0].number }}
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lib-test-results:
|
lib-test-results:
|
||||||
|
|
@ -26,21 +25,32 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
mkdir -p artifacts && cd artifacts
|
mkdir -p artifacts && cd artifacts
|
||||||
mkdir -p libraries-report
|
mkdir -p libraries-report
|
||||||
|
mkdir -p workflows
|
||||||
artifacts_url=${{ github.event.workflow_run.artifacts_url }}
|
artifacts_url=${{ github.event.workflow_run.artifacts_url }}
|
||||||
gh api "$artifacts_url" -q '.artifacts[] | [.name, .archive_download_url] | @tsv' | while read artifact
|
gh api "$artifacts_url" -q '.artifacts[] | [.name, .archive_download_url] | @tsv' | while read artifact
|
||||||
do
|
do
|
||||||
IFS=$'\t' read name url <<< "$artifact"
|
IFS=$'\t' read name url <<< "$artifact"
|
||||||
gh api $url > "$name.zip"
|
gh api $url > "$name.zip"
|
||||||
unzip -j "$name.zip" -d "temp_$name"
|
unzip -j "$name.zip" -d "temp_$name"
|
||||||
mv "temp_$name"/* libraries-report
|
if [[ "$name" == "pr_num" ]]; then
|
||||||
|
mv "temp_$name"/* workflows
|
||||||
|
else
|
||||||
|
mv "temp_$name"/* libraries-report
|
||||||
|
fi
|
||||||
rm -r "temp_$name"
|
rm -r "temp_$name"
|
||||||
done
|
done
|
||||||
echo "Contents of parent directory:"
|
echo "Contents of parent directory:"
|
||||||
ls -R ..
|
ls -R ..
|
||||||
|
|
||||||
|
- name: Read the pr_num file
|
||||||
|
id: pr_num_reader
|
||||||
|
uses: juliangruber/read-file-action@v1
|
||||||
|
with:
|
||||||
|
path: ./artifacts/workflows/pr_num.txt
|
||||||
|
|
||||||
- name: Report results
|
- name: Report results
|
||||||
uses: P-R-O-C-H-Y/report-size-deltas@libs
|
uses: P-R-O-C-H-Y/report-size-deltas@libs
|
||||||
with:
|
with:
|
||||||
sketches-reports-source: ${{ env.SKETCHES_REPORTS_PATH }}
|
sketches-reports-source: ${{ env.SKETCHES_REPORTS_PATH }}
|
||||||
github-token: ${{ env.GITHUB_TOKEN }}
|
github-token: ${{ env.GITHUB_TOKEN }}
|
||||||
pr-number: ${{ env.PR_NUMBER }}
|
pr-number: "${{ steps.pr_num_reader.outputs.content }}"
|
||||||
|
|
|
||||||
30
.github/workflows/publishsizes.yml
vendored
30
.github/workflows/publishsizes.yml
vendored
|
|
@ -11,7 +11,6 @@ env:
|
||||||
# It's convenient to set variables for values used multiple times in the workflow
|
# It's convenient to set variables for values used multiple times in the workflow
|
||||||
SKETCHES_REPORTS_PATH: artifacts/sizes-report
|
SKETCHES_REPORTS_PATH: artifacts/sizes-report
|
||||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
PR_NUMBER: ${{ github.event.workflow_run.pull_requests[0].number }}
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
sizes-test-results:
|
sizes-test-results:
|
||||||
|
|
@ -22,21 +21,34 @@ jobs:
|
||||||
github.event.workflow_run.conclusion == 'success'
|
github.event.workflow_run.conclusion == 'success'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download and Extract Artifacts
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4 # This step checks out the repository's code at gh-pages branch
|
||||||
|
with:
|
||||||
|
ref: gh-pages
|
||||||
|
|
||||||
|
- name: Create folder structure
|
||||||
run: |
|
run: |
|
||||||
mkdir -p artifacts && cd artifacts
|
mkdir -p artifacts && cd artifacts
|
||||||
mkdir -p sizes-report
|
mkdir -p sizes-report
|
||||||
mkdir -p sizes-report/master
|
mkdir -p sizes-report/master
|
||||||
mkdir -p sizes-report/pr
|
mkdir -p sizes-report/pr
|
||||||
|
|
||||||
|
- name: Download JSON file
|
||||||
|
run: |
|
||||||
|
mv master_cli_compile/*.json artifacts/sizes-report/master/
|
||||||
|
|
||||||
|
- name: Download and Extract Artifacts
|
||||||
|
run: |
|
||||||
|
cd artifacts
|
||||||
artifacts_url=${{ github.event.workflow_run.artifacts_url }}
|
artifacts_url=${{ github.event.workflow_run.artifacts_url }}
|
||||||
gh api "$artifacts_url" -q '.artifacts[] | [.name, .archive_download_url] | @tsv' | while read artifact
|
gh api "$artifacts_url" -q '.artifacts[] | [.name, .archive_download_url] | @tsv' | while read artifact
|
||||||
do
|
do
|
||||||
IFS=$'\t' read name url <<< "$artifact"
|
IFS=$'\t' read name url <<< "$artifact"
|
||||||
gh api $url > "$name.zip"
|
gh api $url > "$name.zip"
|
||||||
unzip -j "$name.zip" -d "temp_$name"
|
unzip -j "$name.zip" -d "temp_$name"
|
||||||
if [[ "$name" == *"master"* ]]; then
|
if [[ "$name" == "pr_num" ]]; then
|
||||||
mv "temp_$name"/* sizes-report/master
|
mv "temp_$name"/* sizes-report
|
||||||
elif [[ "$name" == *"pr"* ]]; then
|
elif [[ "$name" == "pr_cli"* ]]; then
|
||||||
mv "temp_$name"/* sizes-report/pr
|
mv "temp_$name"/* sizes-report/pr
|
||||||
else
|
else
|
||||||
mv "temp_$name"/* sizes-report
|
mv "temp_$name"/* sizes-report
|
||||||
|
|
@ -46,9 +58,15 @@ jobs:
|
||||||
echo "Contents of parent directory:"
|
echo "Contents of parent directory:"
|
||||||
ls -R ..
|
ls -R ..
|
||||||
|
|
||||||
|
- name: Read the pr_num file
|
||||||
|
id: pr_num_reader
|
||||||
|
uses: juliangruber/read-file-action@v1
|
||||||
|
with:
|
||||||
|
path: ./artifacts/sizes-report/pr_num.txt
|
||||||
|
|
||||||
- name: Report results
|
- name: Report results
|
||||||
uses: P-R-O-C-H-Y/report-size-deltas@sizes_v2
|
uses: P-R-O-C-H-Y/report-size-deltas@sizes_v2
|
||||||
with:
|
with:
|
||||||
sketches-reports-source: ${{ env.SKETCHES_REPORTS_PATH }}
|
sketches-reports-source: ${{ env.SKETCHES_REPORTS_PATH }}
|
||||||
github-token: ${{ env.GITHUB_TOKEN }}
|
github-token: ${{ env.GITHUB_TOKEN }}
|
||||||
pr-number: ${{ env.PR_NUMBER }}
|
pr-number: "${{ steps.pr_num_reader.outputs.content }}"
|
||||||
|
|
|
||||||
65
.github/workflows/push.yml
vendored
65
.github/workflows/push.yml
vendored
|
|
@ -46,7 +46,15 @@ jobs:
|
||||||
'tools/get.py',
|
'tools/get.py',
|
||||||
'.github/scripts/install-arduino-ide.sh') }}
|
'.github/scripts/install-arduino-ide.sh') }}
|
||||||
- name: Build Sketches
|
- name: Build Sketches
|
||||||
run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} 15
|
run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} 15 1
|
||||||
|
|
||||||
|
#Upload cli compile json as artifact
|
||||||
|
- name: Upload cli compile json
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: pr_cli_compile_${{ matrix.chunk }}
|
||||||
|
path: cli_compile_${{ matrix.chunk }}.json
|
||||||
|
overwrite: true
|
||||||
|
|
||||||
# Windows and MacOS
|
# Windows and MacOS
|
||||||
build-arduino-win-mac:
|
build-arduino-win-mac:
|
||||||
|
|
@ -110,3 +118,58 @@ jobs:
|
||||||
idf.py create-project test
|
idf.py create-project test
|
||||||
echo CONFIG_FREERTOS_HZ=1000 > test/sdkconfig.defaults
|
echo CONFIG_FREERTOS_HZ=1000 > test/sdkconfig.defaults
|
||||||
idf.py -C test -DEXTRA_COMPONENT_DIRS=$PWD/components build
|
idf.py -C test -DEXTRA_COMPONENT_DIRS=$PWD/components build
|
||||||
|
|
||||||
|
# Save artifacts to gh-pages
|
||||||
|
save-master-artifacts:
|
||||||
|
name: Save master artifacts
|
||||||
|
needs: build-arduino-linux
|
||||||
|
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Check out repository
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
fetch-depth: '0'
|
||||||
|
|
||||||
|
- name: Switch branch
|
||||||
|
run:
|
||||||
|
git checkout remotes/origin/gh-pages
|
||||||
|
|
||||||
|
- name: Download sketches reports artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
pattern: pr_cli_compile_*
|
||||||
|
merge-multiple: true
|
||||||
|
path: master_cli_compile
|
||||||
|
|
||||||
|
- name: List files in the directory
|
||||||
|
run: ls -R
|
||||||
|
|
||||||
|
- name: Commit json files to gh-pages if on master
|
||||||
|
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
|
||||||
|
run: |
|
||||||
|
git config user.name github-actions
|
||||||
|
git config user.email github-actions@github.com
|
||||||
|
git add --all
|
||||||
|
git commit -m "Updated cli compile json files"
|
||||||
|
git push origin HEAD:gh-pages
|
||||||
|
|
||||||
|
#Upload PR number as artifact
|
||||||
|
upload-pr-number:
|
||||||
|
name: Upload PR number
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Save the PR number in an artifact
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
PR_NUM: ${{ github.event.number }}
|
||||||
|
run: echo $PR_NUM > pr_num.txt
|
||||||
|
- name: Upload PR number
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: pr_number
|
||||||
|
path: ./pr_num.txt
|
||||||
|
overwrite: true
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue