name: Build on: pull_request: push: repository_dispatch: release: types: - created jobs: # Unit testing with Ceedling unit-test: runs-on: ubuntu-latest steps: - name: Setup Ruby uses: actions/setup-ruby@v1 with: ruby-version: '2.7' - name: Checkout TinyUSB uses: actions/checkout@v2 - name: Unit Tests run: | # Install Ceedling gem install ceedling cd test ceedling test:all # build all example for each family build-family: runs-on: ubuntu-latest strategy: fail-fast: false matrix: family: # Alphabetical order - 'imxrt' - 'lpc55' - 'nrf' - 'rp2040' - 'samd11' - 'samd21' - 'samd51' - 'stm32f4' - 'stm32f7' steps: - name: Setup Python uses: actions/setup-python@v2 - name: Setup Node.js uses: actions/setup-node@v1 - name: Install Toolchains run: | # ARM GCC from xpack npm install --global xpm xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@latest echo `echo $HOME/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/*/.content/bin` >> $GITHUB_PATH - name: Checkout TinyUSB uses: actions/checkout@v2 with: submodules: 'false' - name: Checkout Sub-Submodules run: | # Clone all submodules in lib git submodule update --init --recursive lib # some submodule has it own submodules that need to be fetched as well #git submodule update --init --recursive hw/mcu/microchip - name: Build run: python3 tools/build_family.py ${{ matrix.family }} - uses: actions/upload-artifact@v2 with: name: ${{ matrix.family }}-tinyusb-examples path: _bin/ - name: Create Release Asset if: ${{ github.event_name == 'release' }} run: | cd _bin/ zip -r ../${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip * - name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} if: ${{ github.event_name == 'release' }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: ${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip asset_name: ${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip asset_content_type: application/zip