Rewrite the I2S code from scratch to eliminate the dependence on the pico-extras implementation and to support I2S input as well. 8-bit, 16-bit, 24-bit, and 32-bit words are supported. Multiple I2S ports are allowed (theoretically up to 6 because 2 DMA channels are required per port). I2S input and I2S output are supported. Add input example Fixes #535 Fixes #99 Fixes #562
181 lines
5.0 KiB
YAML
181 lines
5.0 KiB
YAML
# Run whenever a PR is generated or updated.
|
|
|
|
|
|
name: Arduino-Pico CI
|
|
|
|
on:
|
|
pull_request:
|
|
|
|
|
|
jobs:
|
|
|
|
# Me no spell so good
|
|
code-spell:
|
|
name: Check spelling
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- name: Run codespell
|
|
uses: codespell-project/actions-codespell@master
|
|
with:
|
|
skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS
|
|
ignore_words_list: ser,dout
|
|
|
|
# Consistent style
|
|
astyle:
|
|
name: Style, Boards, Package
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: false
|
|
- name: Check package references
|
|
run: |
|
|
./tests/ci/pkgrefs_test.sh
|
|
- name: Check boards.txt was not edited after makeboards.py
|
|
run: |
|
|
./tools/makeboards.py
|
|
# If anything changed, GIT should return an error and fail the test
|
|
git diff --exit-code
|
|
- name: Run astyle on all code/examples
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install astyle
|
|
./tests/restyle.sh
|
|
# If anything changed, GIT should return an error and fail the test
|
|
git diff --exit-code
|
|
# - name: Check Arduino API copy is clean
|
|
# run: |
|
|
# git submodule update --init ./ArduinoCore-API
|
|
# diff -r ./cores/rp2040/api ./ArduinoCore-API/api
|
|
|
|
# Build all examples on linux (core and Arduino IDE)
|
|
build-linux:
|
|
name: Build ${{ matrix.chunk }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
chunk: [0, 1, 2, 3]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.x'
|
|
- name: Cache Linux toolchain
|
|
id: cache-linux
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ./tools/dist
|
|
key: ${{ runner.os }}-${{ hashFiles('package/package_pico_index.template.json', 'tests/common.sh') }}
|
|
- name: Build Sketches
|
|
env:
|
|
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
|
TRAVIS_TAG: ${{ github.ref }}
|
|
BUILD_PARITY: custom
|
|
mod: 4
|
|
rem: ${{ matrix.chunk }}
|
|
run: |
|
|
cd pico-sdk
|
|
git submodule update --init
|
|
cd ..
|
|
bash ./tests/build.sh
|
|
|
|
# Build TinyUSB examples, requires custom build command line
|
|
build-tinyusb:
|
|
name: Build TinyUSB Examples
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.x'
|
|
- name: Cache Linux toolchain
|
|
id: cache-linux
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ./tools/dist
|
|
key: ${{ runner.os }}-${{ hashFiles('package/package_pico_index.template.json', 'tests/common.sh') }}
|
|
- name: Build Sketches
|
|
env:
|
|
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
|
TRAVIS_TAG: ${{ github.ref }}
|
|
BUILD_PARITY: custom
|
|
run: |
|
|
cd pico-sdk
|
|
git submodule update --init
|
|
cd ..
|
|
bash ./tests/build-tinyusb.sh
|
|
|
|
# Single build under Windows to ensure the Win toolchain is good.
|
|
build-windows:
|
|
name: Windows
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.x'
|
|
- name: Cache Windows toolchain
|
|
id: cache-windows
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ./tools/dist
|
|
key: ${{ runner.os }}-${{ hashFiles('package/package_pico_index.template.json', 'tests/common.sh') }}
|
|
- name: Build Sketch
|
|
env:
|
|
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
|
TRAVIS_TAG: ${{ github.ref }}
|
|
WINDOWS: 1
|
|
BUILD_PARITY: custom
|
|
mod: 500
|
|
rem: 1
|
|
run: |
|
|
# Windows has python3 already installed, but it's called "python".
|
|
# Copy python.exe to the proper name so scripts "just work".
|
|
try { Get-Command python3 } catch { copy (get-command python).source (get-command python).source.Replace("python.exe", "python3.exe") }
|
|
cd pico-sdk
|
|
git submodule update --init
|
|
cd ..
|
|
bash ./tests/build.sh
|
|
|
|
|
|
# Single build under macOS to ensure the Mac toolchain is good.
|
|
build-mac:
|
|
name: Mac
|
|
runs-on: macOS-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.x'
|
|
- name: Cache Mac toolchain
|
|
id: cache-mac
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ./tools/dist
|
|
key: ${{ runner.os }}-${{ hashFiles('package/package_pico_index.template.json', 'tests/common.sh') }}
|
|
- name: Build Sketch
|
|
env:
|
|
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
|
TRAVIS_TAG: ${{ github.ref }}
|
|
MACOSX: 1
|
|
BUILD_PARITY: custom
|
|
mod: 500
|
|
rem: 1
|
|
run: |
|
|
cd pico-sdk
|
|
git submodule update --init
|
|
cd ..
|
|
bash ./tests/build.sh
|
|
|