mirror of
https://github.com/hathach/tinyusb.git
synced 2026-02-04 14:45:40 +00:00
upload metrics.json, test ci
This commit is contained in:
374
.github/workflows/build.yml
vendored
374
.github/workflows/build.yml
vendored
@ -83,190 +83,190 @@ jobs:
|
||||
# ---------------------------------------
|
||||
# Build Make: only build on push with one-per-family
|
||||
# ---------------------------------------
|
||||
make:
|
||||
if: github.event_name == 'push'
|
||||
needs: set-matrix
|
||||
uses: ./.github/workflows/build_util.yml
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
toolchain:
|
||||
- 'aarch64-gcc'
|
||||
#- 'arm-clang'
|
||||
- 'arm-gcc'
|
||||
- 'msp430-gcc'
|
||||
- 'riscv-gcc'
|
||||
- 'rx-gcc'
|
||||
with:
|
||||
build-system: 'make'
|
||||
toolchain: ${{ matrix.toolchain }}
|
||||
build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.json)[matrix.toolchain]) }}
|
||||
one-per-family: true
|
||||
|
||||
# ---------------------------------------
|
||||
# Build IAR
|
||||
# Since IAR Token secret is not passed to forked PR, only build non-forked PR with make.
|
||||
# cmake is built by circle-ci. Due to IAR limit capacity, only build oe per family
|
||||
# ---------------------------------------
|
||||
arm-iar:
|
||||
if: false # disable for now since we got reach capacity limit too often
|
||||
#if: github.event_name == 'push' && github.repository_owner == 'hathach'
|
||||
needs: set-matrix
|
||||
uses: ./.github/workflows/build_util.yml
|
||||
secrets: inherit
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build-system:
|
||||
- 'make'
|
||||
with:
|
||||
build-system: ${{ matrix.build-system }}
|
||||
toolchain: 'arm-iar'
|
||||
build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.json)['arm-iar']) }}
|
||||
one-per-family: true
|
||||
|
||||
# ---------------------------------------
|
||||
# Build Make/CMake on Windows/MacOS
|
||||
# ---------------------------------------
|
||||
build-os:
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: ./.github/workflows/build_util.yml
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, macos-latest]
|
||||
build-system: [ 'make', 'cmake' ]
|
||||
with:
|
||||
os: ${{ matrix.os }}
|
||||
build-system: ${{ matrix.build-system }}
|
||||
toolchain: 'arm-gcc-${{ matrix.os }}'
|
||||
build-args: '["stm32h7"]'
|
||||
one-per-family: true
|
||||
|
||||
# ---------------------------------------
|
||||
# Zephyr
|
||||
# ---------------------------------------
|
||||
zephyr:
|
||||
if: github.event_name == 'push'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout TinyUSB
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Zephyr project
|
||||
uses: zephyrproject-rtos/action-zephyr-setup@v1
|
||||
with:
|
||||
app-path: examples
|
||||
toolchains: arm-zephyr-eabi
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
west build -b nrf52840dk -d examples/device/cdc_msc/build examples/device/cdc_msc -- -DRTOS=zephyr
|
||||
west build -b nrf52840dk -d examples/device/msc_dual_lun/build examples/device/msc_dual_lun -- -DRTOS=zephyr
|
||||
|
||||
# ---------------------------------------
|
||||
# Hardware in the loop (HIL)
|
||||
# Run on PR only (hil-tinyusb), hil-hfp only run on non-forked PR
|
||||
# ---------------------------------------
|
||||
hil-build:
|
||||
if: |
|
||||
github.repository_owner == 'hathach' &&
|
||||
(github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
|
||||
needs: set-matrix
|
||||
uses: ./.github/workflows/build_util.yml
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
toolchain:
|
||||
- 'arm-gcc'
|
||||
- 'esp-idf'
|
||||
with:
|
||||
build-system: 'cmake'
|
||||
toolchain: ${{ matrix.toolchain }}
|
||||
build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.hil_json)[matrix.toolchain]) }}
|
||||
one-per-family: true
|
||||
upload-artifacts: true
|
||||
|
||||
# ---------------------------------------
|
||||
# Hardware in the loop (HIL)
|
||||
# self-hosted on local VM, for attached hardware checkout HIL_JSON
|
||||
# ---------------------------------------
|
||||
hil-tinyusb:
|
||||
if: |
|
||||
github.repository_owner == 'hathach' &&
|
||||
(github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
|
||||
needs: hil-build
|
||||
runs-on: [self-hosted, X64, hathach, hardware-in-the-loop]
|
||||
steps:
|
||||
- name: Get Skip Boards from previous run
|
||||
if: github.run_attempt != '1'
|
||||
run: |
|
||||
if [ -f "${{ env.HIL_JSON }}.skip" ]; then
|
||||
SKIP_BOARDS=$(cat "${{ env.HIL_JSON }}.skip")
|
||||
else
|
||||
SKIP_BOARDS=""
|
||||
fi
|
||||
echo "SKIP_BOARDS=$SKIP_BOARDS"
|
||||
echo "SKIP_BOARDS=$SKIP_BOARDS" >> $GITHUB_ENV
|
||||
|
||||
- name: Clean workspace
|
||||
run: |
|
||||
echo "Cleaning up for the first run"
|
||||
rm -rf "${{ github.workspace }}"
|
||||
mkdir -p "${{ github.workspace }}"
|
||||
|
||||
- name: Checkout TinyUSB
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
path: cmake-build
|
||||
merge-multiple: true
|
||||
|
||||
- name: Test on actual hardware
|
||||
run: |
|
||||
python3 test/hil/hil_test.py ${{ env.HIL_JSON }} $SKIP_BOARDS
|
||||
|
||||
# ---------------------------------------
|
||||
# Hardware in the loop (HIL)
|
||||
# self-hosted by HFP, build with IAR toolchain, for attached hardware checkout test/hil/hfp.json
|
||||
# Since IAR Token secret is not passed to forked PR, only build non-forked PR
|
||||
# ---------------------------------------
|
||||
hil-hfp:
|
||||
if: |
|
||||
github.repository_owner == 'hathach' &&
|
||||
github.event.pull_request.head.repo.fork == false &&
|
||||
(github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
|
||||
runs-on: [self-hosted, Linux, X64, hifiphile]
|
||||
env:
|
||||
IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
|
||||
steps:
|
||||
- name: Clean workspace
|
||||
run: |
|
||||
echo "Cleaning up previous run"
|
||||
rm -rf "${{ github.workspace }}"3
|
||||
mkdir -p "${{ github.workspace }}"
|
||||
|
||||
- name: Toolchain version
|
||||
run: |
|
||||
iccarm --version
|
||||
|
||||
- name: Checkout TinyUSB
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Get build boards
|
||||
run: |
|
||||
MATRIX_JSON=$(python test/hil/hil_ci_set_matrix.py test/hil/hfp.json)
|
||||
BUILD_ARGS=$(echo $MATRIX_JSON | jq -r '.["arm-gcc"] | join(" ")')
|
||||
echo "BUILD_ARGS=$BUILD_ARGS"
|
||||
echo "BUILD_ARGS=$BUILD_ARGS" >> $GITHUB_ENV
|
||||
|
||||
- name: Get Dependencies
|
||||
run: python3 tools/get_deps.py $BUILD_ARGS
|
||||
|
||||
- name: Build
|
||||
run: python3 tools/build.py -j 4 --toolchain iar $BUILD_ARGS
|
||||
|
||||
- name: Test on actual hardware (hardware in the loop)
|
||||
run: python3 test/hil/hil_test.py hfp.json
|
||||
# make:
|
||||
# if: github.event_name == 'push'
|
||||
# needs: set-matrix
|
||||
# uses: ./.github/workflows/build_util.yml
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# toolchain:
|
||||
# - 'aarch64-gcc'
|
||||
# #- 'arm-clang'
|
||||
# - 'arm-gcc'
|
||||
# - 'msp430-gcc'
|
||||
# - 'riscv-gcc'
|
||||
# - 'rx-gcc'
|
||||
# with:
|
||||
# build-system: 'make'
|
||||
# toolchain: ${{ matrix.toolchain }}
|
||||
# build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.json)[matrix.toolchain]) }}
|
||||
# one-per-family: true
|
||||
#
|
||||
# # ---------------------------------------
|
||||
# # Build IAR
|
||||
# # Since IAR Token secret is not passed to forked PR, only build non-forked PR with make.
|
||||
# # cmake is built by circle-ci. Due to IAR limit capacity, only build oe per family
|
||||
# # ---------------------------------------
|
||||
# arm-iar:
|
||||
# if: false # disable for now since we got reach capacity limit too often
|
||||
# #if: github.event_name == 'push' && github.repository_owner == 'hathach'
|
||||
# needs: set-matrix
|
||||
# uses: ./.github/workflows/build_util.yml
|
||||
# secrets: inherit
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# build-system:
|
||||
# - 'make'
|
||||
# with:
|
||||
# build-system: ${{ matrix.build-system }}
|
||||
# toolchain: 'arm-iar'
|
||||
# build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.json)['arm-iar']) }}
|
||||
# one-per-family: true
|
||||
#
|
||||
# # ---------------------------------------
|
||||
# # Build Make/CMake on Windows/MacOS
|
||||
# # ---------------------------------------
|
||||
# build-os:
|
||||
# if: github.event_name == 'pull_request'
|
||||
# uses: ./.github/workflows/build_util.yml
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, macos-latest]
|
||||
# build-system: [ 'make', 'cmake' ]
|
||||
# with:
|
||||
# os: ${{ matrix.os }}
|
||||
# build-system: ${{ matrix.build-system }}
|
||||
# toolchain: 'arm-gcc-${{ matrix.os }}'
|
||||
# build-args: '["stm32h7"]'
|
||||
# one-per-family: true
|
||||
#
|
||||
# # ---------------------------------------
|
||||
# # Zephyr
|
||||
# # ---------------------------------------
|
||||
# zephyr:
|
||||
# if: github.event_name == 'push'
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: Checkout TinyUSB
|
||||
# uses: actions/checkout@v4
|
||||
#
|
||||
# - name: Setup Zephyr project
|
||||
# uses: zephyrproject-rtos/action-zephyr-setup@v1
|
||||
# with:
|
||||
# app-path: examples
|
||||
# toolchains: arm-zephyr-eabi
|
||||
#
|
||||
# - name: Build
|
||||
# run: |
|
||||
# west build -b nrf52840dk -d examples/device/cdc_msc/build examples/device/cdc_msc -- -DRTOS=zephyr
|
||||
# west build -b nrf52840dk -d examples/device/msc_dual_lun/build examples/device/msc_dual_lun -- -DRTOS=zephyr
|
||||
#
|
||||
# # ---------------------------------------
|
||||
# # Hardware in the loop (HIL)
|
||||
# # Run on PR only (hil-tinyusb), hil-hfp only run on non-forked PR
|
||||
# # ---------------------------------------
|
||||
# hil-build:
|
||||
# if: |
|
||||
# github.repository_owner == 'hathach' &&
|
||||
# (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
|
||||
# needs: set-matrix
|
||||
# uses: ./.github/workflows/build_util.yml
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# toolchain:
|
||||
# - 'arm-gcc'
|
||||
# - 'esp-idf'
|
||||
# with:
|
||||
# build-system: 'cmake'
|
||||
# toolchain: ${{ matrix.toolchain }}
|
||||
# build-args: ${{ toJSON(fromJSON(needs.set-matrix.outputs.hil_json)[matrix.toolchain]) }}
|
||||
# one-per-family: true
|
||||
# upload-artifacts: true
|
||||
#
|
||||
# # ---------------------------------------
|
||||
# # Hardware in the loop (HIL)
|
||||
# # self-hosted on local VM, for attached hardware checkout HIL_JSON
|
||||
# # ---------------------------------------
|
||||
# hil-tinyusb:
|
||||
# if: |
|
||||
# github.repository_owner == 'hathach' &&
|
||||
# (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
|
||||
# needs: hil-build
|
||||
# runs-on: [self-hosted, X64, hathach, hardware-in-the-loop]
|
||||
# steps:
|
||||
# - name: Get Skip Boards from previous run
|
||||
# if: github.run_attempt != '1'
|
||||
# run: |
|
||||
# if [ -f "${{ env.HIL_JSON }}.skip" ]; then
|
||||
# SKIP_BOARDS=$(cat "${{ env.HIL_JSON }}.skip")
|
||||
# else
|
||||
# SKIP_BOARDS=""
|
||||
# fi
|
||||
# echo "SKIP_BOARDS=$SKIP_BOARDS"
|
||||
# echo "SKIP_BOARDS=$SKIP_BOARDS" >> $GITHUB_ENV
|
||||
#
|
||||
# - name: Clean workspace
|
||||
# run: |
|
||||
# echo "Cleaning up for the first run"
|
||||
# rm -rf "${{ github.workspace }}"
|
||||
# mkdir -p "${{ github.workspace }}"
|
||||
#
|
||||
# - name: Checkout TinyUSB
|
||||
# uses: actions/checkout@v4
|
||||
#
|
||||
# - name: Download Artifacts
|
||||
# uses: actions/download-artifact@v5
|
||||
# with:
|
||||
# path: cmake-build
|
||||
# merge-multiple: true
|
||||
#
|
||||
# - name: Test on actual hardware
|
||||
# run: |
|
||||
# python3 test/hil/hil_test.py ${{ env.HIL_JSON }} $SKIP_BOARDS
|
||||
#
|
||||
# # ---------------------------------------
|
||||
# # Hardware in the loop (HIL)
|
||||
# # self-hosted by HFP, build with IAR toolchain, for attached hardware checkout test/hil/hfp.json
|
||||
# # Since IAR Token secret is not passed to forked PR, only build non-forked PR
|
||||
# # ---------------------------------------
|
||||
# hil-hfp:
|
||||
# if: |
|
||||
# github.repository_owner == 'hathach' &&
|
||||
# github.event.pull_request.head.repo.fork == false &&
|
||||
# (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch')
|
||||
# runs-on: [self-hosted, Linux, X64, hifiphile]
|
||||
# env:
|
||||
# IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
|
||||
# steps:
|
||||
# - name: Clean workspace
|
||||
# run: |
|
||||
# echo "Cleaning up previous run"
|
||||
# rm -rf "${{ github.workspace }}"3
|
||||
# mkdir -p "${{ github.workspace }}"
|
||||
#
|
||||
# - name: Toolchain version
|
||||
# run: |
|
||||
# iccarm --version
|
||||
#
|
||||
# - name: Checkout TinyUSB
|
||||
# uses: actions/checkout@v4
|
||||
#
|
||||
# - name: Get build boards
|
||||
# run: |
|
||||
# MATRIX_JSON=$(python test/hil/hil_ci_set_matrix.py test/hil/hfp.json)
|
||||
# BUILD_ARGS=$(echo $MATRIX_JSON | jq -r '.["arm-gcc"] | join(" ")')
|
||||
# echo "BUILD_ARGS=$BUILD_ARGS"
|
||||
# echo "BUILD_ARGS=$BUILD_ARGS" >> $GITHUB_ENV
|
||||
#
|
||||
# - name: Get Dependencies
|
||||
# run: python3 tools/get_deps.py $BUILD_ARGS
|
||||
#
|
||||
# - name: Build
|
||||
# run: python3 tools/build.py -j 4 --toolchain iar $BUILD_ARGS
|
||||
#
|
||||
# - name: Test on actual hardware (hardware in the loop)
|
||||
# run: python3 test/hil/hil_test.py hfp.json
|
||||
|
||||
9
.github/workflows/build_util.yml
vendored
9
.github/workflows/build_util.yml
vendored
@ -69,11 +69,18 @@ jobs:
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
- name: Upload Artifacts for Metrics
|
||||
if: inputs.build-system == 'cmake'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.arg }}-metrics
|
||||
path: cmake-build/cmake-build-*/metrics.json
|
||||
|
||||
- name: Upload Artifacts for Hardware Testing
|
||||
if: ${{ inputs.upload-artifacts }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.arg }}
|
||||
name: ${{ matrix.arg }}-binaries
|
||||
path: |
|
||||
cmake-build/cmake-build-*/*/*/*.elf
|
||||
cmake-build/cmake-build-*/*/*/*.bin
|
||||
|
||||
Reference in New Issue
Block a user