os: linux dist: bionic sudo: required language: c stage: build git: depth: 1 submodules: false notifications: email: on_success: never stages: - build - deploy cache: directories: - "${HOME}/persist" script: # Update submodules. - git submodule update --init --depth=1 --no-single-branch - git -C src/micropython/ submodule update --init --depth=1 # Install ARM GCC. - | mkdir ${HOME}/gcc GCC_URL="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" wget --no-check-certificate -O - ${GCC_URL} | tar --strip-components=1 -jx -C ${HOME}/gcc export PATH=${HOME}/gcc/bin:${PATH} - arm-none-eabi-gcc --version # Install recent cmake if needed. - | if [[ ${TARGET} == ARDUINO_NANO_RP2040_CONNECT ]]; then mkdir ${HOME}/cmake CMAKE_URL="https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.tar.gz" wget --no-check-certificate -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${HOME}/cmake export PATH=${HOME}/cmake/bin:${PATH} fi # Build the firmware. - make -j$(nproc) -C src/micropython/mpy-cross - make -j$(nproc) TARGET=$TARGET -C src - mkdir ~/build/$TARGET - cp -r src/build/bin/* ~/build/$TARGET jobs: include: - stage: build env: TARGET=OPENMV2 workspaces: create: name: OPENMV2_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=OPENMV3 workspaces: create: name: OPENMV3_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=OPENMV4 workspaces: create: name: OPENMV4_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=OPENMV4P workspaces: create: name: OPENMV4P_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=PORTENTA workspaces: create: name: PORTENTA_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=OPENMVPT workspaces: create: name: OPENMVPT_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=NANO33 workspaces: create: name: NANO33_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=ARDUINO_NANO_RP2040_CONNECT workspaces: create: name: ARDUINO_NANO_RP2040_CONNECT_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET - stage: build env: TARGET=WINC1500 workspaces: create: name: WINC1500_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET script: - cp -rf src/drivers/winc1500/firmware ~/build/$TARGET - stage: build env: TARGET=CYW4343 workspaces: create: name: CYW4343_WORKSPACE # workspace names are escaped. paths: ~/build/$TARGET script: - cp -rf src/drivers/cyw4343/firmware ~/build/$TARGET - stage: deploy git: clone: false workspaces: use: - OPENMV2_WORKSPACE - OPENMV3_WORKSPACE - OPENMV4_WORKSPACE - OPENMV4P_WORKSPACE - PORTENTA_WORKSPACE - OPENMVPT_WORKSPACE - NANO33_WORKSPACE - ARDUINO_NANO_RP2040_CONNECT_WORKSPACE - WINC1500_WORKSPACE - CYW4343_WORKSPACE script: - zip -r firmware_${TRAVIS_TAG}.zip OPENMV2 OPENMV3 OPENMV4 OPENMV4P PORTENTA OPENMVPT NANO33 ARDUINO_NANO_RP2040_CONNECT WINC1500 CYW4343 deploy: provider: releases api_key: secure: lE3IuL9TA5LMCSefXm8BO4Eo9+M8DjIuNG2bmZlL7/ucY1i9OmGp56pnLcRwZ5slQbKX+hzNtTFDqb7eLGn1hpzYEZHl8VEjZLRoXqZC7JmQm7EmRRljpXSEoWCxee6kUOaltNAoycmTy0JtmnFdflJ+lXWQ8Pw/GVu91SXGjDWldNJLcLOcCl8CXEr8pwt5WUsRgQ7NYwj+Fd1vQ7ii7yPEwJNHsUHpWRezKorTgYKuphXOkWSLhbsc9HaGfbNKocgoU3hpDE445MKEa+PnBGMsqWQYXag9QA/vY1olKrB3ICzIV8rhARH9h6jJ0c0fnHtaR6pnp9IC11ZpvUTzsj/Dw7doUNHtUwQtBPmTWjm3FQAWLqJJKmo1zXIXUKyc32NTsnKBAdu9jI2i1/1wopATGQzlds4oqPHFzr7OLfZUFf/b19UC9GqnBuEV2Q4pFZJV5c853UNQ7qio39rD5ykJPNKlK1aeKv1Z4+5Yi/pHmVYKyqx1bPQX7qHYKgGQ7PYNa5InPMDWrDG7v5FRoVNFSffpMpk3hqjbjti6KT7YvL6rCQN8A5dp00m/cVizx3xj/CS1rXJUbGDkoV3PxYPUmUN+2NQsS9NDQfVQxWKwIGjJkOjTZsrFwNGQAzujR0rfuYAyp0mcvWjXGW7hKMZrYCMK7rxEOA4Dka3ndIo= name: ${TRAVIS_TAG} file: firmware_${TRAVIS_TAG}.zip skip_cleanup: true on: tags: true draft: true