diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..b716dbad --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,65 @@ +name: CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + # find examples -type f -name "*.ino" | rev | cut -d/ -f2- | rev | sort | sed -z 's/\n/, /g' + example: [examples/acm/acm_terminal, examples/adk/adk_barcode, examples/adk/ArduinoBlinkLED, examples/adk/demokit_20, examples/adk/term_test, examples/adk/term_time, examples/Bluetooth/BTHID, examples/Bluetooth/PS3BT, examples/Bluetooth/PS3Multi, examples/Bluetooth/PS3SPP, examples/Bluetooth/PS4BT, examples/Bluetooth/SPP, examples/Bluetooth/SPPMulti, examples/Bluetooth/Wii, examples/Bluetooth/WiiBalanceBoard, examples/Bluetooth/WiiIRCamera, examples/Bluetooth/WiiMulti, examples/Bluetooth/WiiUProController, examples/board_qc, examples/cdc_XR21B1411/XR_terminal, examples/ftdi/USBFTDILoopback, examples/GPIO/Blink, examples/GPIO/Blink_LowLevel, examples/GPIO/Input, examples/HID/le3dp, examples/HID/scale, examples/HID/SRWS1, examples/HID/t16km, examples/HID/USBHIDBootKbd, examples/HID/USBHIDBootKbdAndMouse, examples/HID/USBHIDBootMouse, examples/HID/USBHID_desc, examples/HID/USBHIDJoystick, examples/HID/USBHIDMultimediaKbd, examples/hub_demo, examples/max_LCD, examples/pl2303/pl2303_gprs_terminal, examples/pl2303/pl2303_gps, examples/pl2303/pl2303_tinygps, examples/pl2303/pl2303_xbee_terminal, examples/PS3USB, examples/PS4USB, examples/PSBuzz, examples/USB_desc, examples/USBH_MIDI/bidirectional_converter, examples/USBH_MIDI/eVY1_sample, examples/USBH_MIDI/USBH_MIDI_dump, examples/USBH_MIDI/USB_MIDI_converter, examples/USBH_MIDI/USB_MIDI_converter_multi, examples/Xbox/XBOXOLD, examples/Xbox/XBOXONE, examples/Xbox/XBOXONESBT, examples/Xbox/XBOXRECV, examples/Xbox/XBOXUSB] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + - name: Install PlatformIO + run: | + pip install -U pip setuptools wheel + pip install platformio + - name: Install MIDI library + if: contains(matrix.example, 'MIDI') + # https://platformio.org/lib/show/62/MIDI%20Library + run: pio lib -g install 62 + - name: Install TinyGPS library + if: contains(matrix.example, 'tinygps') + # https://platformio.org/lib/show/416/TinyGPS + run: pio lib -g install 416 + - name: Run PlatformIO + run: | + # Skip all Wii examples and the PS3SPP example on Uno, as they will not fit with debugging enabled + if [[ "${{ matrix.example }}" != *"Wii"* && "${{ matrix.example }}" != *"PS3SPP" ]]; then UNO="--board=uno"; fi + + # There is a conflict with the internal Teensy MIDI library, so skip this example on Teensy 3.x and 4.x + # See: https://travis-ci.org/github/felis/USB_Host_Shield_2.0/jobs/743787235 + if [[ "${{ matrix.example }}" != *"bidirectional_converter" ]]; then TEENSY35="--board=teensy35"; TEENSY36="--board=teensy36"; TEENSY40="--board=teensy40"; TEENSY41="--board=teensy41"; fi + + pio ci --lib="." $UNO --board=genuino101 --board=teensylc $TEENSY40 $TEENSY41 --board=esp12e --board=nodemcu --board=esp32dev + + # Teensy 3.x depends on the SPI4Teensy3 library: https://platformio.org/lib/show/417/SPI4Teensy3 + pio ci --lib="." --board=teensy30 --board=teensy31 $TEENSY35 $TEENSY36 --project-option="lib_deps=SPI4Teensy3" + + # Workaround https://github.com/arduino/ArduinoCore-sam/issues/69 + pio ci --lib="." --board=due --project-option="build_flags=-Wno-misleading-indentation" + env: + PLATFORMIO_CI_SRC: ${{ matrix.example }} + PLATFORMIO_BUILD_FLAGS: -DWIICAMERA -DDEBUG_USB_HOST -Wall -Werror + deploy: + needs: [build] + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/master' + steps: + - name: Install dependencies + # We need GraphViz to draw figures and graphs + # Doxygen is used for generating the documentation + run: apt-get -y install doxygen graphviz + - name: Generate documentation + run: | + # Fix error in the Doxygen Markdown parser and generate the documentation + sed -i 's/@YuuichiAkagawa/\\@YuuichiAkagawa/' README.md + doxygen doc/Doxyfile + touch doc/html/.nojekyll + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./doc/html diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1f5eb687..00000000 --- a/.travis.yml +++ /dev/null @@ -1,110 +0,0 @@ -language: python -python: - - "3.9" - -# Cache PlatformIO packages using Travis CI container-based infrastructure -sudo: false -cache: - directories: - - "~/.platformio" - -addons: - apt: - packages: - # We need GraphViz to draw figures and graphs - - graphviz - # Doxygen is used for generating the documentation - - doxygen - -# Generated using: find examples -type f -name "*.ino" | rev | cut -d/ -f2- | rev | sed 's/^/ - PLATFORMIO_CI_SRC=/' > tmp.yml -env: - - PLATFORMIO_CI_SRC=examples/acm/acm_terminal - - PLATFORMIO_CI_SRC=examples/adk/adk_barcode - - PLATFORMIO_CI_SRC=examples/adk/ArduinoBlinkLED - - PLATFORMIO_CI_SRC=examples/adk/demokit_20 - - PLATFORMIO_CI_SRC=examples/adk/term_test - - PLATFORMIO_CI_SRC=examples/adk/term_time - - PLATFORMIO_CI_SRC=examples/Bluetooth/BTHID - - PLATFORMIO_CI_SRC=examples/Bluetooth/PS3BT - - PLATFORMIO_CI_SRC=examples/Bluetooth/PS3Multi - - PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP SKIP_UNO=true - - PLATFORMIO_CI_SRC=examples/Bluetooth/PS4BT - - PLATFORMIO_CI_SRC=examples/Bluetooth/SPP - - PLATFORMIO_CI_SRC=examples/Bluetooth/SPPMulti - - PLATFORMIO_CI_SRC=examples/Bluetooth/Wii SKIP_UNO=true - - PLATFORMIO_CI_SRC=examples/Bluetooth/WiiBalanceBoard SKIP_UNO=true - - PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-DWIICAMERA" SKIP_UNO=true - - PLATFORMIO_CI_SRC=examples/Bluetooth/WiiMulti SKIP_UNO=true - - PLATFORMIO_CI_SRC=examples/Bluetooth/WiiUProController SKIP_UNO=true - - PLATFORMIO_CI_SRC=examples/board_qc - - PLATFORMIO_CI_SRC=examples/cdc_XR21B1411/XR_terminal - - PLATFORMIO_CI_SRC=examples/ftdi/USBFTDILoopback - - PLATFORMIO_CI_SRC=examples/GPIO/Blink - - PLATFORMIO_CI_SRC=examples/GPIO/Blink_LowLevel - - PLATFORMIO_CI_SRC=examples/GPIO/Input - - PLATFORMIO_CI_SRC=examples/HID/le3dp - - PLATFORMIO_CI_SRC=examples/HID/scale - - PLATFORMIO_CI_SRC=examples/HID/SRWS1 - - PLATFORMIO_CI_SRC=examples/HID/USBHID_desc - - PLATFORMIO_CI_SRC=examples/HID/USBHIDBootKbd - - PLATFORMIO_CI_SRC=examples/HID/USBHIDBootKbdAndMouse - - PLATFORMIO_CI_SRC=examples/HID/USBHIDBootMouse - - PLATFORMIO_CI_SRC=examples/HID/USBHIDJoystick - - PLATFORMIO_CI_SRC=examples/HID/USBHIDMultimediaKbd - - PLATFORMIO_CI_SRC=examples/hub_demo - - PLATFORMIO_CI_SRC=examples/max_LCD - - PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gprs_terminal - - PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps - - PLATFORMIO_CI_SRC=examples/pl2303/pl2303_tinygps - - PLATFORMIO_CI_SRC=examples/pl2303/pl2303_xbee_terminal - - PLATFORMIO_CI_SRC=examples/PS3USB - - PLATFORMIO_CI_SRC=examples/PS4USB - - PLATFORMIO_CI_SRC=examples/PSBuzz - # - PLATFORMIO_CI_SRC=examples/testusbhostFAT - - PLATFORMIO_CI_SRC=examples/USB_desc - # See: https://travis-ci.org/github/felis/USB_Host_Shield_2.0/jobs/743787235 - - PLATFORMIO_CI_SRC=examples/USBH_MIDI/bidirectional_converter SKIP_TEENSY35=true SKIP_TEENSY36=true - - PLATFORMIO_CI_SRC=examples/USBH_MIDI/eVY1_sample - - PLATFORMIO_CI_SRC=examples/USBH_MIDI/USB_MIDI_converter - - PLATFORMIO_CI_SRC=examples/USBH_MIDI/USB_MIDI_converter_multi - - PLATFORMIO_CI_SRC=examples/USBH_MIDI/USBH_MIDI_dump - - PLATFORMIO_CI_SRC=examples/Xbox/XBOXOLD - - PLATFORMIO_CI_SRC=examples/Xbox/XBOXONE - - PLATFORMIO_CI_SRC=examples/Xbox/XBOXONESBT - - PLATFORMIO_CI_SRC=examples/Xbox/XBOXRECV - - PLATFORMIO_CI_SRC=examples/Xbox/XBOXUSB - -install: - - pip install -U platformio - - export PLATFORMIO_BUILD_FLAGS="$PLATFORMIO_BUILD_FLAGS -DDEBUG_USB_HOST -Wall -Werror" - - # - # Libraries from PlatformIO Library Registry: - # - # http://platformio.org/lib/show/62/MIDI - # http://platformio.org/lib/show/416/TinyGPS - # http://platformio.org/lib/show/417/SPI4Teensy3 - - platformio lib install 62 416 417 - -script: - - if [[ -z "$SKIP_UNO" ]]; then UNO="--board=uno"; fi - - if [[ -z "$SKIP_TEENSY35" ]]; then TEENSY35="--board=teensy35"; fi - - if [[ -z "$SKIP_TEENSY36" ]]; then TEENSY36="--board=teensy36"; fi - - platformio ci --lib="." $UNO --board=genuino101 --board=teensy30 --board=teensy31 $TEENSY35 $TEENSY36 --board=teensylc --board=teensy40 --board=teensy41 --board=esp12e --board=nodemcu --board=esp32dev - - platformio ci --lib="." --board=due --project-option="build_flags=-Wno-misleading-indentation" # Workaround https://travis-ci.org/felis/USB_Host_Shield_2.0/jobs/569237654 and https://github.com/arduino/ArduinoCore-sam/issues/69 - -before_deploy: - # Fix errors in the Doxygen Markdown parser and generate the docs - - sed -i 's/Circuits@/Circuits\\@/' README.md - - sed -i 's/@YuuichiAkagawa/\\@YuuichiAkagawa/' README.md - - doxygen doc/Doxyfile - - touch doc/html/.nojekyll - -deploy: - provider: pages - github-token: $GITHUB_TOKEN - local_dir: doc/html - skip_cleanup: true - keep-history: true - on: - branch: master diff --git a/README.md b/README.md index 40b51d91..facff8dd 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# USB Host Library Rev.2.0 +# USB Host Library Rev. 2.0 The code is released under the GNU General Public License. __________ -[![Build Status](https://travis-ci.org/felis/USB_Host_Shield_2.0.svg?branch=master)](https://travis-ci.org/felis/USB_Host_Shield_2.0) +[![](https://github.com/felis/USB_Host_Shield_2.0/workflows/CI/badge.svg)](https://github.com/felis/USB_Host_Shield_2.0/actions?query=branch%3Amaster) # Summary This is Revision 2.0 of MAX3421E-based USB Host Shield Library for AVR's.