d5074220a8
Few peripherals are actually tested. However, USB, I2C and GPIO seem to work. Most pins are silkscreened with the "PX00" style, so the board module only includes the small number that are screened differently. The default SPI, I2C, and UART are the ones on the EXT2 header. This is arbitrary, but the I2C on this connector is shared with the on-board I2C devices and the PCC header, making it the most versatile.
442 lines
14 KiB
YAML
442 lines
14 KiB
YAML
name: Build CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
release:
|
|
types: [published]
|
|
check_suite:
|
|
types: [rerequested]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-18.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
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.8
|
|
- name: Install deps
|
|
run: |
|
|
sudo apt-get install -y eatmydata
|
|
sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64
|
|
pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
python3 --version
|
|
- name: Build mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: Build unix port
|
|
run: |
|
|
make -C ports/unix deplibs -j2
|
|
make -C ports/unix -j2
|
|
make -C ports/unix coverage -j2
|
|
- name: Test all
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1
|
|
working-directory: tests
|
|
- name: Print failure info
|
|
run: |
|
|
for exp in *.exp;
|
|
do testbase=$(basename $exp .exp);
|
|
echo -e "\nFAILURE $testbase";
|
|
diff -u $testbase.exp $testbase.out;
|
|
done
|
|
working-directory: tests
|
|
if: failure()
|
|
- name: Native Tests
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --emit native
|
|
working-directory: tests
|
|
- name: mpy Tests
|
|
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
|
|
working-directory: tests
|
|
- name: Stubs
|
|
run: make stubs -j2
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: stubs
|
|
path: circuitpython-stubs*
|
|
- name: Docs
|
|
run: sphinx-build -E -W -b html . _build/html
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: docs
|
|
path: _build/html
|
|
- name: Translations
|
|
run: make check-translate
|
|
- name: New boards check
|
|
run: python3 -u ci_new_boards_check.py
|
|
working-directory: tools
|
|
- name: Build mpy-cross.static-raspbian
|
|
run: make -C mpy-cross -j2 -f Makefile.static-raspbian
|
|
- uses: actions/upload-artifact@v1.0.0
|
|
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@v1.0.0
|
|
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@v1.0.0
|
|
with:
|
|
name: mpy-cross.static-x64-windows
|
|
path: mpy-cross/mpy-cross.static.exe
|
|
|
|
mpy-cross-mac:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- name: Dump GitHub context
|
|
env:
|
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
run: echo "$GITHUB_CONTEXT"
|
|
- name: Make gettext programs available
|
|
run: |
|
|
brew install gettext
|
|
echo "::set-env name=PATH::/usr/local/opt/gettext/bin:$PATH"
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
python3 --version
|
|
msgfmt --version
|
|
- 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
|
|
- name: Build mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- uses: actions/upload-artifact@v1.0.0
|
|
with:
|
|
name: mpy-cross-macos-catalina
|
|
path: mpy-cross/mpy-cross
|
|
|
|
build-arm:
|
|
runs-on: ubuntu-18.04
|
|
needs: test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
board:
|
|
- "8086_commander"
|
|
- "TG-Watch02A"
|
|
- "aloriumtech_evo_m51"
|
|
- "aramcon_badge_2019"
|
|
- "arduino_mkr1300"
|
|
- "arduino_mkrzero"
|
|
- "arduino_nano_33_ble"
|
|
- "arduino_nano_33_iot"
|
|
- "arduino_zero"
|
|
- "bast_pro_mini_m0"
|
|
- "bdmicro_vina_m0"
|
|
- "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"
|
|
- "datalore_ip_m4"
|
|
- "datum_distance"
|
|
- "datum_imu"
|
|
- "datum_light"
|
|
- "datum_weather"
|
|
- "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_express"
|
|
- "feather_m7_1011"
|
|
- "feather_mimxrt1011"
|
|
- "feather_mimxrt1062"
|
|
- "feather_nrf52840_express"
|
|
- "feather_radiofruit_zigbee"
|
|
- "feather_stm32f405_express"
|
|
- "fluff_m0"
|
|
- "gemma_m0"
|
|
- "grandcentral_m4_express"
|
|
- "hallowing_m0_express"
|
|
- "hallowing_m4_express"
|
|
- "hiibot_bluefi"
|
|
- "imxrt1010_evk"
|
|
- "imxrt1020_evk"
|
|
- "imxrt1060_evk"
|
|
- "itsybitsy_m0_express"
|
|
- "itsybitsy_m4_express"
|
|
- "itsybitsy_nrf52840_express"
|
|
- "kicksat-sprite"
|
|
- "loc_ber_m4_base_board"
|
|
- "makerdiary_nrf52840_mdk"
|
|
- "makerdiary_nrf52840_mdk_usb_dongle"
|
|
- "meowbit_v121"
|
|
- "meowmeow"
|
|
- "metro_m0_express"
|
|
- "metro_m4_airlift_lite"
|
|
- "metro_m4_express"
|
|
- "metro_nrf52840_express"
|
|
- "mini_sam_m4"
|
|
- "monster_m4sk"
|
|
- "ndgarage_ndbit6"
|
|
- "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"
|
|
- "pirkey_m0"
|
|
- "pitaya_go"
|
|
- "pyb_nano_v2"
|
|
- "pybadge"
|
|
- "pybadge_airlift"
|
|
- "pyboard_v11"
|
|
- "pycubed"
|
|
- "pycubed_mram"
|
|
- "pygamer"
|
|
- "pygamer_advance"
|
|
- "pyportal"
|
|
- "pyportal_titano"
|
|
- "pyruler"
|
|
- "robohatmm1_m4"
|
|
- "sam32"
|
|
- "same54_xplained"
|
|
- "seeeduino_xiao"
|
|
- "serpente"
|
|
- "shirtty"
|
|
- "simmel"
|
|
- "snekboard"
|
|
- "sparkfun_lumidrive"
|
|
- "sparkfun_nrf52840_mini"
|
|
- "sparkfun_qwiic_micro_no_flash"
|
|
- "sparkfun_qwiic_micro_with_flash"
|
|
- "sparkfun_redboard_turbo"
|
|
- "sparkfun_samd21_dev"
|
|
- "sparkfun_samd21_mini"
|
|
- "sparkfun_samd51_thing_plus"
|
|
- "spresense"
|
|
- "stm32f411ce_blackpill"
|
|
- "stm32f411ve_discovery"
|
|
- "stm32f412zg_discovery"
|
|
- "stm32f4_discovery"
|
|
- "stm32f746g_discovery"
|
|
- "stringcar_m0_express"
|
|
- "teensy40"
|
|
- "teensy41"
|
|
- "teknikio_bluebird"
|
|
- "thunderpack"
|
|
- "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
|
|
- name: Install deps
|
|
run: |
|
|
sudo apt-get install -y gettext
|
|
pip install requests sh click setuptools awscli
|
|
wget https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
|
|
sudo tar -C /usr --strip-components=1 -xaf gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
|
|
- name: Versions
|
|
run: |
|
|
gcc --version
|
|
arm-none-eabi-gcc --version
|
|
python3 --version
|
|
- 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: mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: build
|
|
run: python3 -u build_release_files.py
|
|
working-directory: tools
|
|
env:
|
|
BOARDS: ${{ matrix.board }}
|
|
- uses: actions/upload-artifact@v1.0.0
|
|
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_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-18.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
|
|
- 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
|
|
- 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: mpy-cross
|
|
run: make -C mpy-cross -j2
|
|
- name: build
|
|
run: python3 -u build_release_files.py
|
|
working-directory: tools
|
|
env:
|
|
BOARDS: ${{ matrix.board }}
|
|
- uses: actions/upload-artifact@v1.0.0
|
|
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_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-latest
|
|
needs: test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
board:
|
|
- "espressif_saola_1_wroom"
|
|
- "espressif_saola_1_wrover"
|
|
|
|
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@v1
|
|
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') }}-20200523
|
|
- 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 requests sh click setuptools awscli
|
|
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: 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@v1.0.0
|
|
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_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'))
|