File tree Expand file tree Collapse file tree 2 files changed +63
-0
lines changed Expand file tree Collapse file tree 2 files changed +63
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Check pioasm output files
2+ on : [push, pull_request]
3+
4+ jobs :
5+ check-pioasm-outputs :
6+ # Prevent running twice for PRs from same repo
7+ if : github.repository_owner == 'raspberrypi' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name)
8+ runs-on : [self-hosted, Linux, X64]
9+
10+ steps :
11+ - name : Checkout
12+ uses : actions/checkout@v4
13+
14+ - name : Checkout pico-sdk/develop
15+ uses : actions/checkout@v4
16+ with :
17+ repository : raspberrypi/pico-sdk
18+ ref : develop
19+ path : pico-sdk
20+
21+ - name : Rebuild pioasm outputs
22+ run : PICO_SDK_PATH=${{github.workspace}}/pico-sdk ./update_pioasm_outputs.sh
23+
24+ - name : Check pioasm outputs for changes
25+ run : |
26+ if git status --porcelain | grep -q '^ M'; then
27+ echo "::error title=outdated-files::Autogenerated pioasm output files are out of date - update by running update_pioasm_outputs.sh"
28+ exit 1
29+ fi
30+
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ set -x
3+ # Helper-script to update the pioasm-generated files in pico-examples repo
4+ PIOASM_COMMENT_STRING=" This file is autogenerated by pioasm"
5+ if [ -z $PICO_SDK_PATH ]; then
6+ echo " PICO_SDK_PATH envvar not set"
7+ exit 1
8+ fi
9+ if [ ! -d $PICO_SDK_PATH ]; then
10+ echo " PICO_SDK_PATH envvar ($PICO_SDK_PATH ) is invalid"
11+ exit 1
12+ fi
13+ # convert to absolute path
14+ PICO_SDK_PATH=$( realpath $PICO_SDK_PATH )
15+ BUILD_DIR=$( mktemp -d -p .)
16+ cleanup () {
17+ if [[ -d " $BUILD_DIR " ]]; then
18+ rm -rf " $BUILD_DIR "
19+ fi
20+ }
21+ trap cleanup EXIT
22+ PIOASM_OUTPUT_DIRS=()
23+ while read -r DIRNAME; do
24+ PIOASM_OUTPUT_DIRS+=(" $DIRNAME " )
25+ done <<< " $(git grep -l " $PIOASM_COMMENT_STRING " | cut -d/ -f1-2 | sort | uniq)"
26+ while read -r FILENAME; do
27+ rm " $FILENAME "
28+ done <<< " $(git grep -l " $PIOASM_COMMENT_STRING " )"
29+ cmake -S . -B " $BUILD_DIR " -DPICO_SDK_PATH=$PICO_SDK_PATH -DPICO_NO_PICOTOOL=1
30+ for DIRNAME in " ${PIOASM_OUTPUT_DIRS[@]} " ; do
31+ make -j4 -C " $BUILD_DIR /$DIRNAME "
32+ done
33+ cleanup
You can’t perform that action at this time.
0 commit comments