2020 boards-arm : ${{ steps.set-matrix.outputs.boards-arm }}
2121 boards-riscv : ${{ steps.set-matrix.outputs.boards-riscv }}
2222 boards-espressif : ${{ steps.set-matrix.outputs.boards-espressif }}
23+ boards-aarch : ${{ steps.set-matrix.outputs.boards-aarch }}
2324 steps :
2425 - name : Dump GitHub context
2526 env :
@@ -28,19 +29,17 @@ jobs:
2829 - uses : actions/checkout@v2.2.0
2930 with :
3031 submodules : false
31- fetch-depth : 0
32- - name : Populate selected submodules
33- run : git submodule update --init extmod/ lib/ tools/
34- - name : Fetch tags
35- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
36- - name : CircuitPython version
37- run : |
38- git describe --dirty --tags
39- echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
32+ fetch-depth : 1
4033 - name : Set up Python 3.8
4134 uses : actions/setup-python@v1
4235 with :
4336 python-version : 3.8
37+ - name : Get CP deps
38+ run : python tools/ci_fetch_deps.py test ${{ github.ref }}
39+ - name : CircuitPython version
40+ run : |
41+ git describe --dirty --tags || git log --parents HEAD~4..
42+ echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
4443 - name : Install dependencies
4544 run : |
4645 sudo apt-get update
@@ -136,19 +135,17 @@ jobs:
136135 - uses : actions/checkout@v2.2.0
137136 with :
138137 submodules : false
139- fetch-depth : 0
140- - name : Populate selected submodules
141- run : git submodule update --init extmod/ lib/ tools/
142- - name : Fetch tags
143- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
144- - name : CircuitPython version
145- run : |
146- git describe --dirty --tags
147- echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
138+ fetch-depth : 1
148139 - name : Set up Python 3.8
149140 uses : actions/setup-python@v1
150141 with :
151142 python-version : 3.8
143+ - name : Get CP deps
144+ run : python tools/ci_fetch_deps.py mpy-cross-mac ${{ github.ref }}
145+ - name : CircuitPython version
146+ run : |
147+ git describe --dirty --tags
148+ echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
152149 - name : Install dependencies
153150 run : |
154151 brew install gettext
@@ -198,11 +195,9 @@ jobs:
198195 - uses : actions/checkout@v2.2.0
199196 with :
200197 submodules : false
201- fetch-depth : 0
202- - name : Populate selected submodules
203- run : git submodule update --init extmod/
204- - name : Fetch tags
205- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
198+ fetch-depth : 1
199+ - name : Get CP deps
200+ run : python tools/ci_fetch_deps.py docs ${{ github.ref }}
206201 - name : CircuitPython version
207202 run : |
208203 git describe --dirty --tags
@@ -271,10 +266,10 @@ jobs:
271266 python-version : 3.8
272267 - uses : actions/checkout@v2.2.0
273268 with :
274- submodules : true
275- fetch-depth : 0
276- - name : Fetch tags
277- run : git fetch --recurse-submodules=no https:// github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
269+ submodules : false
270+ fetch-depth : 1
271+ - name : Get CP deps
272+ run : python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.ref }}
278273 - name : Install dependencies
279274 run : |
280275 sudo apt-get install -y gettext
@@ -323,10 +318,10 @@ jobs:
323318 python-version : 3.8
324319 - uses : actions/checkout@v2.2.0
325320 with :
326- submodules : true
327- fetch-depth : 0
328- - name : Fetch tags
329- run : git fetch --recurse-submodules=no https:// github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
321+ submodules : false
322+ fetch-depth : 1
323+ - name : Get CP deps
324+ run : python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.ref }}
330325 - name : Install dependencies
331326 run : |
332327 sudo apt-get install -y gettext
@@ -375,10 +370,10 @@ jobs:
375370 python-version : 3.8
376371 - uses : actions/checkout@v2.2.0
377372 with :
378- submodules : true
379- fetch-depth : 0
380- - name : Fetch tags
381- run : git fetch --recurse-submodules=no https:// github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
373+ submodules : false
374+ fetch-depth : 1
375+ - name : Get CP deps
376+ run : python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.ref }}
382377 - name : CircuitPython version
383378 run : git describe --dirty --tags
384379 - uses : actions/cache@v2
@@ -446,3 +441,67 @@ jobs:
446441 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
447442 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
448443 if : (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
444+
445+ build-aarch :
446+ runs-on : ubuntu-20.04
447+ needs : test
448+ strategy :
449+ fail-fast : false
450+ matrix :
451+ board : ${{ fromJSON(needs.test.outputs.boards-aarch) }}
452+ if : ${{ needs.test.outputs.boards-aarch != '[]' }}
453+ steps :
454+ - name : Set up Python 3.8
455+ uses : actions/setup-python@v1
456+ with :
457+ python-version : 3.8
458+ - uses : actions/checkout@v2.2.0
459+ with :
460+ submodules : false
461+ fetch-depth : 1
462+ - name : Get CP deps
463+ run : python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.ref }}
464+ - name : Install dependencies
465+ run : |
466+ sudo apt-get install -y gettext mtools
467+ pip install -r requirements-ci.txt -r requirements-dev.txt
468+ wget --no-verbose https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
469+ sudo tar -C /usr --strip-components=1 -xaf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
470+ wget --no-verbose https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
471+ sudo tar -C /usr --strip-components=1 -xaf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
472+ - name : Install mkfs.fat
473+ run : |
474+ wget https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz
475+ tar -xaf dosfstools-4.2.tar.gz
476+ cd dosfstools-4.2
477+ ./configure
478+ make -j 2
479+ cd src
480+ echo >>$GITHUB_PATH $(pwd)
481+ - name : Versions
482+ run : |
483+ gcc --version
484+ aarch64-none-elf-gcc --version
485+ arm-none-eabi-gcc --version
486+ python3 --version
487+ mkfs.fat --version || true
488+ - name : mpy-cross
489+ run : make -C mpy-cross -j2
490+ - name : Setup build failure matcher
491+ run : echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
492+ - name : build
493+ run : python3 -u build_release_files.py
494+ working-directory : tools
495+ env :
496+ BOARDS : ${{ matrix.board }}
497+ - uses : actions/upload-artifact@v2
498+ with :
499+ name : ${{ matrix.board }}
500+ path : bin/${{ matrix.board }}
501+ - name : Upload to S3
502+ run : " [ -z \" $AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
503+ env :
504+ AWS_PAGER : ' '
505+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
506+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
507+ if : (github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
0 commit comments