summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorBenjamin Shockley <benjaminshockley@hotmail.com>2020-08-20 13:48:15 -0500
committerGitHub <noreply@github.com>2020-08-20 13:48:15 -0500
commit0084f0af24e4e219bc040c52ee723959423de6e2 (patch)
tree1aebdb362f08bf6417caa87836e3e4e739afc964 /.github/workflows
parent9aebe2f1efc99871fcf283c304e3a8700050d736 (diff)
parent4d7b9cde33934a44c4c905a49d2f831339fc8bd2 (diff)
Merge pull request #2 from adafruit/master
Master
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build.yml446
-rw-r--r--.github/workflows/create_website_pr.yml40
-rw-r--r--.github/workflows/pre-commit.yml24
3 files changed, 510 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 000000000..00454cc2d
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,446 @@
+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
+ with:
+ submodules: true
+ fetch-depth: 0
+ - run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
+ - run: git submodule sync
+ - run: git submodule foreach git remote -v
+ - run: git submodule foreach git fetch --recurse-submodules=no origin +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
+ - name: Docs
+ run: sphinx-build -E -W -b html . _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
+ with:
+ submodules: true
+ fetch-depth: 0
+ - run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
+ - run: git submodule sync
+ - run: git submodule foreach git remote -v
+ - run: git submodule foreach git fetch --recurse-submodules=no origin +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"
+ - "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"
+ - "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
+ with:
+ submodules: true
+ fetch-depth: 0
+ - run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
+ - run: git submodule sync
+ - run: git submodule foreach git remote -v
+ - run: git submodule foreach git fetch --recurse-submodules=no origin +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
+ with:
+ submodules: true
+ fetch-depth: 0
+ - run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
+ - run: git submodule sync
+ - run: git submodule foreach git remote -v
+ - run: git submodule foreach git fetch --recurse-submodules=no origin +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
+ with:
+ submodules: true
+ fetch-depth: 0
+ - run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
+ - run: git submodule sync
+ - run: git submodule foreach git remote -v
+ - run: git submodule foreach git fetch --recurse-submodules=no origin +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'))
diff --git a/.github/workflows/create_website_pr.yml b/.github/workflows/create_website_pr.yml
new file mode 100644
index 000000000..79a6c68a7
--- /dev/null
+++ b/.github/workflows/create_website_pr.yml
@@ -0,0 +1,40 @@
+name: Update CircuitPython.org
+
+on:
+ release:
+ types: [published]
+
+jobs:
+ website:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Dump GitHub context
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+ run: echo "$GITHUB_CONTEXT"
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - name: Install deps
+ run: |
+ pip install requests sh click
+ - name: Versions
+ run: |
+ gcc --version
+ python3 --version
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+ fetch-depth: 0
+ - run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
+ - run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
+ - name: CircuitPython version
+ run: git describe --dirty --tags
+ - name: Website
+ run: python3 build_board_info.py
+ working-directory: tools
+ env:
+ RELEASE_TAG: ${{ github.event.release.tag_name }}
+ ADABOT_GITHUB_ACCESS_TOKEN: ${{ secrets.BLINKA_GITHUB_ACCESS_TOKEN }}
+ if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested')
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
new file mode 100644
index 000000000..116829296
--- /dev/null
+++ b/.github/workflows/pre-commit.yml
@@ -0,0 +1,24 @@
+# SPDX-FileCopyrightText: Copyright (c) 2019 Anthony Sottile
+#
+# SPDX-License-Identifier: MIT
+
+name: pre-commit
+
+on:
+ pull_request:
+ push:
+ branches: [master]
+
+jobs:
+ pre-commit:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions/setup-python@v1
+ - name: set PY
+ run: echo "::set-env name=PY::$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pre-commit
+ key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
+ - uses: pre-commit/action@v1.1.0