nRF CircuitPython boards will now provide the file transfer service defined here: https://github.com/adafruit/Adafruit_CircuitPython_BLE_File_Transfer USB capable boards will only advertise if previously bonded to a device or if the reset button is pressed during the fast blue flashes on start up. When pressed, the board will restart again but the blue period will not flash. Boards without USB will always advertise. When previously bonded, the advertisement is private so that no other peers can connect. If advertising publicly, the tx power is lowered to reduce the likelihood of bonding from a distance. This PR also fixes issues with loading identities of bonded peers so that our address can now be resolved and we can resolve others' addresses when scanning.
598 lines
22 KiB
YAML
598 lines
22 KiB
YAML
# SPDX-FileCopyrightText: 2014 MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
name: Build CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
release:
|
|
types: [published]
|
|
check_suite:
|
|
types: [rerequested]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Dump GitHub context
|
|
env:
|
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
run: echo "$GITHUB_CONTEXT"
|
|
- uses: actions/checkout@v2.2.0
|
|
with:
|
|
submodules: true
|
|
fetch-depth: 0
|
|
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
|
|
- name: CircuitPython version
|
|
run: |
|
|
git describe --dirty --tags
|
|
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.8
|
|
- name: Install deps
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y eatmydata
|
|
sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64 latexmk texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra gcc-aarch64-linux-gnu
|
|
pip install -r requirements-dev.txt
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
python3 --version
|
|
- name: Check For setup.py
|
|
id: need-pypi
|
|
run: |
|
|
echo ::set-output name=setup-py::$( find . -wholename './setup.py' )
|
|
- name: New boards check
|
|
run: python3 -u ci_new_boards_check.py
|
|
working-directory: tools
|
|
- name: Duplicate USB VID/PID Check
|
|
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
|
|
- name: Build and Validate Stubs
|
|
run: make check-stubs -j2
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: stubs
|
|
path: circuitpython-stubs*
|
|
- name: Install pypi dependencies
|
|
if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install setuptools wheel twine
|
|
- name: Test Documentation Build (HTML)
|
|
run: sphinx-build -E -W -b html -D version=${{ env.CP_VERSION }} -D release=${{ env.CP_VERSION }} . _build/html
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: docs
|
|
path: _build/html
|
|
- name: Test Documentation Build (LaTeX/PDF)
|
|
run: |
|
|
make latexpdf
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: docs
|
|
path: _build/latex
|
|
- name: Build mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: Build unix port
|
|
run: |
|
|
make -C ports/unix VARIANT=coverage -j2
|
|
- name: Test all
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1
|
|
working-directory: tests
|
|
- name: Native Tests
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1 --emit native
|
|
working-directory: tests
|
|
- name: mpy Tests
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1 --mpy-cross-flags='-mcache-lookup-bc' --via-mpy -d basics float micropython
|
|
working-directory: tests
|
|
- name: Native mpy Tests
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1 --mpy-cross-flags='-mcache-lookup-bc' --via-mpy --emit native -d basics float micropython
|
|
working-directory: tests
|
|
- name: Build mpy-cross.static-aarch64
|
|
run: make -C mpy-cross -j2 -f Makefile.static-aarch64
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross.static-aarch64
|
|
path: mpy-cross/mpy-cross.static-aarch64
|
|
- name: Build mpy-cross.static-raspbian
|
|
run: make -C mpy-cross -j2 -f Makefile.static-raspbian
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross.static-raspbian
|
|
path: mpy-cross/mpy-cross.static-raspbian
|
|
- name: Build mpy-cross.static
|
|
run: make -C mpy-cross -j2 -f Makefile.static
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross.static-amd64-linux
|
|
path: mpy-cross/mpy-cross.static
|
|
- name: Build mpy-cross.static-mingw
|
|
run: make -C mpy-cross -j2 -f Makefile.static-mingw
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross.static-x64-windows
|
|
path: mpy-cross/mpy-cross.static.exe
|
|
- name: Upload mpy-cross builds to S3
|
|
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
env:
|
|
AWS_PAGER: ''
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
run: |
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-aarch64 s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-aarch64-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-raspbian s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-raspbian-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-amd64-linux-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static.exe s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-x64-windows-${{ env.CP_VERSION }}.exe --no-progress --region us-east-1
|
|
zip -9r circuitpython-stubs.zip circuitpython-stubs
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp circuitpython-stubs.zip s3://adafruit-circuit-python/bin/stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip --no-progress --region us-east-1
|
|
|
|
- name: Upload stubs to PyPi
|
|
if: github.event_name == 'push'
|
|
env:
|
|
TWINE_USERNAME: ${{ secrets.pypi_username }}
|
|
TWINE_PASSWORD: ${{ secrets.pypi_password }}
|
|
run: |
|
|
echo "Uploading dev release to PyPi"
|
|
python setup.py sdist
|
|
[ -z "$TWINE_USERNAME" ] || twine upload dist/*
|
|
|
|
mpy-cross-mac:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- name: Dump GitHub context
|
|
env:
|
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
run: echo "$GITHUB_CONTEXT"
|
|
- uses: actions/checkout@v2.2.0
|
|
with:
|
|
submodules: true
|
|
fetch-depth: 0
|
|
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
|
|
- name: CircuitPython version
|
|
run: |
|
|
git describe --dirty --tags
|
|
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
|
|
- name: Install dependencies
|
|
run: |
|
|
brew install gettext
|
|
echo >>$GITHUB_PATH /usr/local/opt/gettext/bin
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
python3 --version
|
|
msgfmt --version
|
|
- name: Build mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross-macos-catalina
|
|
path: mpy-cross/mpy-cross
|
|
- name: Select SDK for M1 build
|
|
run: sudo xcode-select -switch /Applications/Xcode_12.3.app
|
|
- name: Build mpy-cross (arm64)
|
|
run: make -C mpy-cross -j2 -f Makefile.m1 V=2
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross-macos-bigsur-arm64
|
|
path: mpy-cross/mpy-cross-arm64
|
|
- name: Make universal binary
|
|
run: lipo -create -output mpy-cross-macos-universal mpy-cross/mpy-cross mpy-cross/mpy-cross-arm64
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: mpy-cross-macos-universal
|
|
path: mpy-cross-macos-universal
|
|
- name: Upload mpy-cross build to S3
|
|
run: |
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross-macos-universal s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross-macos-universal-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross-arm64 s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross-macos-bigsur-${{ env.CP_VERSION }}-arm64 --no-progress --region us-east-1
|
|
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross-macos-catalina-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
|
env:
|
|
AWS_PAGER: ''
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
|
|
|
|
build-arm:
|
|
runs-on: ubuntu-20.04
|
|
needs: test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
board:
|
|
- "8086_commander"
|
|
- "ADM_B_NRF52840_1"
|
|
- "TG-Watch"
|
|
- "adafruit_feather_rp2040"
|
|
- "adafruit_itsybitsy_rp2040"
|
|
- "adafruit_macropad_rp2040"
|
|
- "adafruit_neokey_trinkey_m0"
|
|
- "adafruit_proxlight_trinkey_m0"
|
|
- "adafruit_qt2040_trinkey"
|
|
- "adafruit_qtpy_rp2040"
|
|
- "adafruit_rotary_trinkey_m0"
|
|
- "adafruit_slide_trinkey_m0"
|
|
- "aloriumtech_evo_m51"
|
|
- "aramcon2_badge"
|
|
- "aramcon_badge_2019"
|
|
- "arduino_mkr1300"
|
|
- "arduino_mkrzero"
|
|
- "arduino_nano_33_ble"
|
|
- "arduino_nano_33_iot"
|
|
- "arduino_nano_rp2040_connect"
|
|
- "arduino_zero"
|
|
- "bast_pro_mini_m0"
|
|
- "bastble"
|
|
- "bdmicro_vina_d21"
|
|
- "bdmicro_vina_d51"
|
|
- "bdmicro_vina_d51_pcb7"
|
|
- "bless_dev_board_multi_sensor"
|
|
- "blm_badge"
|
|
- "capablerobot_usbhub"
|
|
- "catwan_usbstick"
|
|
- "circuitbrains_basic_m0"
|
|
- "circuitbrains_deluxe_m4"
|
|
- "circuitplayground_bluefruit"
|
|
- "circuitplayground_express"
|
|
- "circuitplayground_express_crickit"
|
|
- "circuitplayground_express_displayio"
|
|
- "clue_nrf52840_express"
|
|
- "cp32-m4"
|
|
- "cp_sapling_m0"
|
|
- "cp_sapling_m0_revb"
|
|
- "cp_sapling_m0_spiflash"
|
|
- "cytron_maker_pi_rp2040"
|
|
- "datalore_ip_m4"
|
|
- "datum_distance"
|
|
- "datum_imu"
|
|
- "datum_light"
|
|
- "datum_weather"
|
|
- "dynalora_usb"
|
|
- "dynossat_edu_eps"
|
|
- "dynossat_edu_obc"
|
|
- "electronut_labs_blip"
|
|
- "electronut_labs_papyr"
|
|
- "escornabot_makech"
|
|
- "espruino_pico"
|
|
- "espruino_wifi"
|
|
- "feather_bluefruit_sense"
|
|
- "feather_m0_adalogger"
|
|
- "feather_m0_basic"
|
|
- "feather_m0_express"
|
|
- "feather_m0_express_crickit"
|
|
- "feather_m0_rfm69"
|
|
- "feather_m0_rfm9x"
|
|
- "feather_m0_supersized"
|
|
- "feather_m4_can"
|
|
- "feather_m4_express"
|
|
- "feather_m7_1011"
|
|
- "feather_mimxrt1011"
|
|
- "feather_mimxrt1062"
|
|
- "feather_nrf52840_express"
|
|
- "feather_stm32f405_express"
|
|
- "fluff_m0"
|
|
- "gemma_m0"
|
|
- "grandcentral_m4_express"
|
|
- "hallowing_m0_express"
|
|
- "hallowing_m4_express"
|
|
- "hiibot_bluefi"
|
|
- "huntercat_nfc"
|
|
- "ikigaisense_vita"
|
|
- "imxrt1010_evk"
|
|
- "imxrt1020_evk"
|
|
- "imxrt1060_evk"
|
|
- "itsybitsy_m0_express"
|
|
- "itsybitsy_m4_express"
|
|
- "itsybitsy_nrf52840_express"
|
|
- "kicksat-sprite"
|
|
- "loc_ber_m4_base_board"
|
|
- "makerdiary_m60_keyboard"
|
|
- "makerdiary_nrf52840_m2_devkit"
|
|
- "makerdiary_nrf52840_mdk"
|
|
- "makerdiary_nrf52840_mdk_usb_dongle"
|
|
- "matrixportal_m4"
|
|
- "meowbit_v121"
|
|
- "meowmeow"
|
|
- "metro_m0_express"
|
|
- "metro_m4_airlift_lite"
|
|
- "metro_m4_express"
|
|
- "metro_m7_1011"
|
|
- "metro_nrf52840_express"
|
|
- "mini_sam_m4"
|
|
- "monster_m4sk"
|
|
- "ndgarage_ndbit6"
|
|
- "ndgarage_ndbit6_v2"
|
|
- "neopixel_trinkey_m0"
|
|
- "nfc_copy_cat"
|
|
- "nice_nano"
|
|
- "nucleo_f746zg"
|
|
- "nucleo_f767zi"
|
|
- "nucleo_h743zi_2"
|
|
- "ohs2020_badge"
|
|
- "openbook_m4"
|
|
- "openmv_h7"
|
|
- "particle_argon"
|
|
- "particle_boron"
|
|
- "particle_xenon"
|
|
- "pca10056"
|
|
- "pca10059"
|
|
- "pca10100"
|
|
- "pewpew10"
|
|
- "pewpew_m4"
|
|
- "picoplanet"
|
|
- "pimoroni_keybow2040"
|
|
- "pimoroni_pga2040"
|
|
- "pimoroni_picolipo_16mb"
|
|
- "pimoroni_picolipo_4mb"
|
|
- "pimoroni_picosystem"
|
|
- "pimoroni_tiny2040"
|
|
- "pitaya_go"
|
|
- "pyb_nano_v2"
|
|
- "pybadge"
|
|
- "pyboard_v11"
|
|
- "pycubed"
|
|
- "pycubed_mram"
|
|
- "pygamer"
|
|
- "pyportal"
|
|
- "pyportal_titano"
|
|
- "pyruler"
|
|
- "qtpy_m0"
|
|
- "qtpy_m0_haxpress"
|
|
- "raspberry_pi_pico"
|
|
- "raytac_mdbt50q-db-40"
|
|
- "robohatmm1_m4"
|
|
- "sam32"
|
|
- "same54_xplained"
|
|
- "seeeduino_wio_terminal"
|
|
- "seeeduino_xiao"
|
|
- "sensebox_mcu"
|
|
- "serpente"
|
|
- "shirtty"
|
|
- "silicognition-m4-shim"
|
|
- "simmel"
|
|
- "snekboard"
|
|
- "sparkfun_lumidrive"
|
|
- "sparkfun_micromod_rp2040"
|
|
- "sparkfun_nrf52840_micromod"
|
|
- "sparkfun_nrf52840_mini"
|
|
- "sparkfun_pro_micro_rp2040"
|
|
- "sparkfun_qwiic_micro_no_flash"
|
|
- "sparkfun_qwiic_micro_with_flash"
|
|
- "sparkfun_redboard_turbo"
|
|
- "sparkfun_samd21_dev"
|
|
- "sparkfun_samd21_mini"
|
|
- "sparkfun_samd51_micromod"
|
|
- "sparkfun_samd51_thing_plus"
|
|
- "sparkfun_thing_plus_rp2040"
|
|
- "spresense"
|
|
- "stackrduino_m0_pro"
|
|
- "stm32f411ce_blackpill"
|
|
- "stm32f411ce_blackpill_with_flash"
|
|
- "stm32f411ve_discovery"
|
|
- "stm32f412zg_discovery"
|
|
- "stm32f4_discovery"
|
|
- "stm32f746g_discovery"
|
|
- "stringcar_m0_express"
|
|
- "teensy40"
|
|
- "teensy41"
|
|
- "teknikio_bluebird"
|
|
- "thunderpack_v11"
|
|
- "thunderpack_v12"
|
|
- "tinkeringtech_scoutmakes_azul"
|
|
- "trellis_m4_express"
|
|
- "trinket_m0"
|
|
- "trinket_m0_haxpress"
|
|
- "uartlogger2"
|
|
- "uchip"
|
|
- "ugame10"
|
|
- "winterbloom_big_honking_button"
|
|
- "winterbloom_sol"
|
|
- "xinabox_cc03"
|
|
- "xinabox_cs11"
|
|
|
|
steps:
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.8
|
|
- uses: actions/checkout@v2.2.0
|
|
with:
|
|
submodules: true
|
|
fetch-depth: 0
|
|
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
|
|
- name: Install deps
|
|
run: |
|
|
sudo apt-get install -y gettext
|
|
pip install -r requirements-dev.txt
|
|
wget --no-verbose https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
|
|
sudo tar -C /usr --strip-components=1 -xaf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
arm-none-eabi-gcc --version
|
|
python3 --version
|
|
- name: mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: Setup build failure matcher
|
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
|
- name: build
|
|
run: python3 -u build_release_files.py
|
|
working-directory: tools
|
|
env:
|
|
BOARDS: ${{ matrix.board }}
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ matrix.board }}
|
|
path: bin/${{ matrix.board }}
|
|
- name: Upload to S3
|
|
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
|
env:
|
|
AWS_PAGER: ''
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
|
|
build-riscv:
|
|
runs-on: ubuntu-20.04
|
|
needs: test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
board:
|
|
- "fomu"
|
|
|
|
steps:
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.8
|
|
- uses: actions/checkout@v2.2.0
|
|
with:
|
|
submodules: true
|
|
fetch-depth: 0
|
|
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
|
|
- name: Install deps
|
|
run: |
|
|
sudo apt-get install -y gettext
|
|
pip install requests sh click setuptools awscli
|
|
wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
|
|
sudo tar -C /usr --strip-components=1 -xaf riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6.tar.gz
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
riscv64-unknown-elf-gcc --version
|
|
python3 --version
|
|
- name: mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: Setup build failure matcher
|
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
|
- name: build
|
|
run: python3 -u build_release_files.py
|
|
working-directory: tools
|
|
env:
|
|
BOARDS: ${{ matrix.board }}
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ matrix.board }}
|
|
path: bin/${{ matrix.board }}
|
|
- name: Upload to S3
|
|
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
|
env:
|
|
AWS_PAGER: ''
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
|
build-xtensa:
|
|
runs-on: ubuntu-20.04
|
|
needs: test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
board:
|
|
- "adafruit_feather_esp32s2_nopsram"
|
|
- "adafruit_feather_esp32s2_tftback_nopsram"
|
|
- "adafruit_funhouse"
|
|
- "adafruit_magtag_2.9_grayscale"
|
|
- "adafruit_metro_esp32s2"
|
|
- "artisense_rd00"
|
|
- "atmegazero_esp32s2"
|
|
- "electroniccats_bastwifi"
|
|
- "espressif_kaluga_1"
|
|
- "espressif_kaluga_1.3"
|
|
- "espressif_saola_1_wroom"
|
|
- "espressif_saola_1_wrover"
|
|
- "franzininho_wifi_wroom"
|
|
- "franzininho_wifi_wrover"
|
|
- "lilygo_ttgo_t8_s2_st7789"
|
|
- "microdev_micro_s2"
|
|
- "muselab_nanoesp32_s2_wroom"
|
|
- "muselab_nanoesp32_s2_wrover"
|
|
- "targett_module_clip_wroom"
|
|
- "targett_module_clip_wrover"
|
|
- "unexpectedmaker_feathers2"
|
|
- "unexpectedmaker_feathers2_prerelease"
|
|
- "unexpectedmaker_tinys2"
|
|
|
|
steps:
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.8
|
|
- uses: actions/checkout@v2.2.0
|
|
with:
|
|
submodules: true
|
|
fetch-depth: 0
|
|
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
|
|
- name: CircuitPython version
|
|
run: git describe --dirty --tags
|
|
- uses: actions/cache@v2
|
|
name: Fetch IDF tool cache
|
|
id: idf-cache
|
|
with:
|
|
path: ${{ github.workspace }}/.idf_tools
|
|
key: ${{ runner.os }}-idf-tools-${{ hashFiles('.git/modules/ports/esp32s2/esp-idf/HEAD') }}-20210506
|
|
- name: Clone IDF submodules
|
|
run: |
|
|
(cd $IDF_PATH && git submodule update --init)
|
|
env:
|
|
IDF_PATH: ${{ github.workspace }}/ports/esp32s2/esp-idf
|
|
- name: Install IDF tools
|
|
run: |
|
|
$IDF_PATH/tools/idf_tools.py --non-interactive install required
|
|
$IDF_PATH/tools/idf_tools.py --non-interactive install cmake
|
|
$IDF_PATH/tools/idf_tools.py --non-interactive install-python-env
|
|
rm -rf $IDF_TOOLS_PATH/dist
|
|
env:
|
|
IDF_PATH: ${{ github.workspace }}/ports/esp32s2/esp-idf
|
|
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
- name: Install CircuitPython deps
|
|
run: |
|
|
source $IDF_PATH/export.sh
|
|
pip install -r requirements-dev.txt
|
|
sudo apt-get install -y gettext ninja-build
|
|
env:
|
|
IDF_PATH: ${{ github.workspace }}/ports/esp32s2/esp-idf
|
|
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
- name: Versions
|
|
run: |
|
|
source $IDF_PATH/export.sh
|
|
gcc --version
|
|
xtensa-esp32s2-elf-gcc --version
|
|
python3 --version
|
|
ninja --version
|
|
cmake --version
|
|
shell: bash
|
|
env:
|
|
IDF_PATH: ${{ github.workspace }}/ports/esp32s2/esp-idf
|
|
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
- name: mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: Setup build failure matcher
|
|
run: echo "::add-matcher::$GITHUB_WORKSPACE/.github/workflows/match-build-fail.json"
|
|
- name: build
|
|
run: |
|
|
source $IDF_PATH/export.sh
|
|
python3 -u build_release_files.py
|
|
working-directory: tools
|
|
shell: bash
|
|
env:
|
|
IDF_PATH: ${{ github.workspace }}/ports/esp32s2/esp-idf
|
|
IDF_TOOLS_PATH: ${{ github.workspace }}/.idf_tools
|
|
BOARDS: ${{ matrix.board }}
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ matrix.board }}
|
|
path: bin/${{ matrix.board }}
|
|
- name: Upload to S3
|
|
run: "[ -z \"$AWS_ACCESS_KEY_ID\" ] || aws s3 cp bin/ s3://adafruit-circuit-python/bin/ --recursive --no-progress --region us-east-1"
|
|
env:
|
|
AWS_PAGER: ''
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|