diff options
| author | Reinhard Panhuber <[email protected]> | 2021-02-12 18:05:20 +0100 |
|---|---|---|
| committer | Reinhard Panhuber <[email protected]> | 2021-02-12 18:05:20 +0100 |
| commit | cdf600048f717f187243b8118eac43b793c3feec (patch) | |
| tree | 00d88a8e39560c2e1a35f6c9feb97062733d9d8b /.github | |
| parent | 185414721ff549058a199ade40966015e6260996 (diff) | |
| parent | 09868434cd9f53394350cce682333ada97f796c3 (diff) | |
Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/build.yml | 162 | ||||
| -rw-r--r-- | .github/workflows/trigger.yml | 52 |
2 files changed, 171 insertions, 43 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e5b8cd6ae..5ec29686a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,12 @@ name: Build -on: [pull_request, push, repository_dispatch] +on: + pull_request: + push: + repository_dispatch: + release: + types: + - created jobs: # Unit testing with Ceedling @@ -9,6 +15,8 @@ jobs: steps: - name: Setup Ruby uses: actions/setup-ruby@v1 + with: + ruby-version: '2.7' - name: Checkout TinyUSB uses: actions/checkout@v2 @@ -20,19 +28,86 @@ jobs: cd test ceedling test:all - # Build most of the ports - build: + # build all example for each family + build-family: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + family: + # Alphabetical order + - 'imxrt' + - '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: 'true' + + - name: Checkout Sub-Submodules + run: | + # some submodule has it own submodules that need to be fetched as well + git submodule update --init --recursive hw/mcu/microchip + git submodule update --init --recursive lib/FreeRTOS + + - 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 + + # Build all no-family (opharned) boards + build-board: runs-on: ubuntu-latest strategy: fail-fast: false matrix: example: + # Alphabetical order - 'device/audio_test' - 'device/board_test' - 'device/cdc_dual_ports' - 'device/cdc_msc' - 'device/cdc_msc_freertos' - - 'device/dfu_rt' + - 'device/dfu_runtime' - 'device/hid_composite' - 'device/hid_composite_freertos' - 'device/hid_generic_inout' @@ -40,70 +115,79 @@ jobs: - 'device/midi_test' - 'device/msc_dual_lun' - 'device/net_lwip_webserver' + - 'device/uac2_headset' - 'device/usbtmc' - 'device/webusb_serial' - 'host/cdc_msc_hid' steps: - name: Setup Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 - name: Setup Node.js uses: actions/setup-node@v1 - - name: Cache MSP430 Toolchain + - name: Checkout TinyUSB + uses: actions/checkout@v2 + with: + submodules: 'true' + + - name: Checkout Sub-Submodules + run: | + # some submodule has it own submodules that need to be fetched as well + git submodule update --init --recursive hw/mcu/microchip + git submodule update --init --recursive lib/FreeRTOS + + # Add msp430-gcc url to env + echo >> $GITHUB_ENV MSP430_GCC_URL=http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/9_2_0_0/export/msp430-gcc-9.2.0.50_linux64.tar.bz2 + + - name: Cache MSP430-GCC + uses: actions/cache@v2 id: cache-msp430 - uses: actions/cache@v1 with: - path: /tmp/dl/ - # Increment gcc version number at end when updating downloads - key: msp430-${{ runner.os }}-9.2.0.50 + path: ~/cache/ + key: ${{ runner.os }}-21-01-26-${{ env.MSP430_GCC_URL }} + + - name: Install MSP430-GCC + if: steps.cache-msp430.outputs.cache-hit != 'true' + run: | + # MSP430 GCC + mkdir -p ~/cache/msp430-gcc + wget --progress=dot:mega $MSP430_GCC_URL -O msp430-gcc.tar.bz2 + tar -C ~/cache/msp430-gcc -xaf msp430-gcc.tar.bz2 - name: Install Toolchains - env: - MSP430GCC_URL: http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/9_2_0_0/export/msp430-gcc-9.2.0.50_linux64.tar.bz2 run: | # ARM & RISC-V GCC from xpack npm install --global xpm xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@latest xpm install --global @xpack-dev-tools/riscv-none-embed-gcc@latest - echo `echo $HOME/opt/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/*/.content/bin` >> $GITHUB_PATH - echo `echo $HOME/opt/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/*/.content/bin` >> $GITHUB_PATH - + echo `echo $HOME/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/*/.content/bin` >> $GITHUB_PATH + echo `echo $HOME/.local/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/*/.content/bin` >> $GITHUB_PATH + # TI MSP430 GCC - mkdir -p /tmp/dl/ - [ -f "/tmp/dl/msp430-gcc.tar.bz2" ] || wget --progress=dot:mega $MSP430GCC_URL -O /tmp/dl/msp430-gcc.tar.bz2 - tar -C $HOME -xaf /tmp/dl/msp430-gcc.tar.bz2 - echo `echo $HOME/msp430-gcc-*_linux64/bin` >> $GITHUB_PATH - - - name: Checkout TinyUSB - uses: actions/checkout@v2 - with: - # Cannot do submodule checkout here since LWIP's git server cannot checkout unadventised commits (it must use tags) - submodules: 'false' - - - name: Checkout Submodules - run: | - git submodule sync --recursive - # Special case LWIP since GNU's Savannah can't do shallow checkout of non-tagged commits - git submodule update --init --recursive lib/lwip - git submodule update --init --recursive --depth 1 + echo >> $GITHUB_PATH `echo ~/cache/msp430-gcc/msp430-gcc-*/bin` - name: Build - run: | - python3 tools/build_all.py ${{ matrix.example }} + run: python3 tools/build_board.py ${{ matrix.example }} - # Build ESP32S - build-esp32s: + # Build ESP32S2 + build-esp32s2: runs-on: ubuntu-latest strategy: fail-fast: false matrix: - example: ['board_test', 'cdc_msc_freertos', 'hid_composite_freertos'] + board: + # Alphabetical order + - 'adafruit_feather_esp32s2' + - 'adafruit_magtag_29gray' + - 'adafruit_metro_esp32s2' + - 'espressif_kaluga_1' + - 'espressif_saola_1' steps: - name: Setup Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 - name: Pull ESP-IDF docker run: docker pull espressif/idf:latest @@ -114,4 +198,4 @@ jobs: submodules: 'false' - name: Build - run: docker run --rm -v $PWD:/project -w /project espressif/idf:latest python3 tools/build_esp32s.py ${{ matrix.example }} + run: docker run --rm -v $PWD:/project -w /project espressif/idf:latest python3 tools/build_esp32s2.py ${{ matrix.board }} diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml index a7ef1341d..40750a2f9 100644 --- a/.github/workflows/trigger.yml +++ b/.github/workflows/trigger.yml @@ -3,12 +3,56 @@ name: Trigger Repos on: push: branches: master - + release: + types: + - created + jobs: - trigger: + trigger-mynewt: + if: github.repository == 'hathach/tinyusb' runs-on: ubuntu-latest steps: - - name: mynewt-tinyusb-example + - name: Trigger mynewt-tinyusb-example shell: bash run: | - curl -X POST -H "Authorization: token ${{ secrets.GH_REPO_TOKEN }}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" --data '{"event_type": "rebuild"}' https://api.github.com/repos/hathach/mynewt-tinyusb-example/dispatches + curl -X POST -H "Authorization: token ${{ secrets.API_TOKEN_GITHUB }}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" --data '{"event_type": "rebuild"}' https://api.github.com/repos/hathach/mynewt-tinyusb-example/dispatches + + mirror-tinyusb-src: + if: github.repository == 'hathach/tinyusb' + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Push to tinyusb_src + run: | + # clone tinyusb_src with PAT + git config --global user.email "[email protected]" + git config --global user.name "hathach" + git clone --depth 1 --single-branch --branch main "https://${{ secrets.API_TOKEN_GITHUB }}@github.com/hathach/tinyusb_src.git" tinyusb_src + + # Remove all files + rm -rf tinyusb_src/* + + # Copy src and other files + cp -r src tinyusb_src/ + cp LICENSE tinyusb_src/ + cd tinyusb_src + + # Commit if there is changes + if [ -n "$(git status --porcelain)" ]; then + git add . + git commit --message "Update from https://github.com/$GITHUB_REPOSITORY/commit/$GITHUB_SHA" + git push + fi + + - name: Create tinyusb_src Release + if: ${{ github.event_name == 'release' }} + run: | + # Push tag + cd tinyusb_src + git tag ${{ github.event.release.tag_name }} + git push origin ${{ github.event.release.tag_name }} + + # Send POST reqwuest to release https://docs.github.com/en/rest/reference/repos#create-a-release + curl -X POST -H "Authorization: token ${{ secrets.API_TOKEN_GITHUB }}" -H "Accept: application/vnd.github.v3+json" --data '{"tag_name": "${{ github.event.release.tag_name }}", "name": "${{ github.event.release.name }}", "body": "${{ github.event.release.body }}", "draft": ${{ github.event.release.draft }}, "prerelease": ${{ github.event.release.prerelease }}}' https://api.github.com/repos/hathach/tinyusb_src/releases |
