71 lines
2.4 KiB
YAML
71 lines
2.4 KiB
YAML
name: Build and Run USB Test Application
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 0 * * SAT' # Saturday midnight
|
|
pull_request:
|
|
types: [opened, reopened, synchronize]
|
|
paths:
|
|
- 'usb/**'
|
|
|
|
jobs:
|
|
build:
|
|
name: Build USB Test App
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
idf_ver: ["release-v4.4", "release-v5.0", "latest"]
|
|
idf_target: ["esp32s2", "esp32s3"]
|
|
runs-on: ubuntu-20.04
|
|
container: espressif/idf:${{ matrix.idf_ver }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'true'
|
|
- name: Build USB Test Application
|
|
env:
|
|
IDF_TARGET: ${{ matrix.idf_target }}
|
|
shell: bash
|
|
working-directory: usb/test_app
|
|
run: |
|
|
. ${IDF_PATH}/export.sh
|
|
export PEDANTIC_FLAGS="-DIDF_CI_BUILD -Werror -Werror=deprecated-declarations -Werror=unused-variable -Werror=unused-but-set-variable -Werror=unused-function"
|
|
export EXTRA_CFLAGS="${PEDANTIC_FLAGS} -Wstrict-prototypes"
|
|
export EXTRA_CXXFLAGS="${PEDANTIC_FLAGS}"
|
|
idf.py build
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: usb_test_app_bin_${{ matrix.idf_target }}_${{ matrix.idf_ver }}
|
|
path: |
|
|
usb/test_app/build/bootloader/bootloader.bin
|
|
usb/test_app/build/partition_table/partition-table.bin
|
|
usb/test_app/build/usb_test_app.bin
|
|
usb/test_app/build/usb_test_app.elf
|
|
usb/test_app/build/flasher_args.json
|
|
|
|
run-target:
|
|
name: Run USB Test App on target
|
|
needs: build
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
idf_ver: ["release-v5.0", "latest"]
|
|
idf_target: ["esp32s2"]
|
|
runs-on: [self-hosted, linux, docker, "${{ matrix.idf_target }}", "usb_host"]
|
|
container:
|
|
image: python:3.7-buster
|
|
options: --privileged # Privileged mode has access to serial ports
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: usb_test_app_bin_${{ matrix.idf_target }}_${{ matrix.idf_ver }}
|
|
path: usb/test_app/build
|
|
- name: Install Python packages
|
|
env:
|
|
PIP_EXTRA_INDEX_URL: "https://dl.espressif.com/pypi/"
|
|
run: pip install --only-binary cryptography pytest-embedded pytest-embedded-serial-esp pytest-embedded-idf
|
|
- name: Run USB Test App on target
|
|
working-directory: usb/test_app
|
|
run: pytest --target=${{ matrix.idf_target }}
|