Use Github actions, as Travis is too slow

This commit is contained in:
Kristian Sloth Lauszus 2020-11-18 14:49:59 +01:00
parent e78795af22
commit 9f92baf191
3 changed files with 67 additions and 112 deletions

65
.github/workflows/main.yml vendored Normal file
View file

@ -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

View file

@ -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

View file

@ -2,7 +2,7 @@
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.