name: CI on: schedule: - cron: '0 0 * * 5' push: branches: [ master ] pull_request: branches: [ master ] release: types: [ published, created, edited ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: check_version_files: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: check version run: | $GITHUB_WORKSPACE/travis/version.py --check prepare_example_json: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: generate examples id: set-matrix run: | source $GITHUB_WORKSPACE/travis/common.sh cd $GITHUB_WORKSPACE echo -en "matrix=" >> $GITHUB_OUTPUT echo -en "[" >> $GITHUB_OUTPUT get_sketches_json_matrix arduino $GITHUB_WORKSPACE/examples/esp8266_pico esp8266 0.35.0 esp8266:esp8266:generic:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,ResetMethod=nodemcu,CrystalFreq=26,FlashFreq=80,FlashMode=qio,eesz=4M2M,led=2,sdk=nonosdk_190703,ip=lm2f,dbg=Serial1,lvl=SSL,wipe=none,baud=115200 >> $GITHUB_OUTPUT echo -en "," >> $GITHUB_OUTPUT get_sketches_json_matrix arduino $GITHUB_WORKSPACE/examples/esp8266_pico esp8266 0.35.0 esp8266:esp8266:generic:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,ResetMethod=nodemcu,CrystalFreq=26,FlashFreq=80,FlashMode=qio,eesz=4M2M,led=2,sdk=nonosdk_190703,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200 >> $GITHUB_OUTPUT echo -en "," >> $GITHUB_OUTPUT get_sketches_json_matrix arduino $GITHUB_WORKSPACE/examples/esp32 esp32 0.35.0 esp32:esp32:esp32:FlashFreq=80 >> $GITHUB_OUTPUT echo -en "]" >> $GITHUB_OUTPUT echo >> $GITHUB_OUTPUT outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} prepare_ide: runs-on: ubuntu-latest strategy: fail-fast: false matrix: CLI_VERSION: [0.35.0] env: CLI_VERSION: ${{ matrix.CLI_VERSION }} ARDUINO_DIRECTORIES_DATA: /home/runner/arduino_ide steps: - uses: actions/checkout@v2 - name: Get Date id: get-date run: | echo "date=$(/bin/date -u "+%Y%m%d")" >> $GITHUB_OUTPUT shell: bash - uses: actions/cache@v3 id: cache_all with: path: | /home/runner/arduino_ide /home/runner/Arduino key: ${{ runner.os }}-${{ steps.get-date.outputs.date }}-${{ matrix.CLI_VERSION }}-cli - name: download IDE if: steps.cache_all.outputs.cache-hit != 'true' run: | wget https://github.com/arduino/arduino-cli/releases/download/v${CLI_VERSION}/arduino-cli_${CLI_VERSION}_Linux_64bit.tar.gz -q tar xf arduino-cli_${CLI_VERSION}_Linux_64bit.tar.gz mkdir -p $ARDUINO_DIRECTORIES_DATA mv arduino-cli $ARDUINO_DIRECTORIES_DATA/ - name: download ArduinoJson if: steps.cache_all.outputs.cache-hit != 'true' run: | mkdir -p $HOME/Arduino/libraries wget https://github.com/bblanchon/ArduinoJson/archive/6.x.zip -q unzip 6.x.zip mv ArduinoJson-6.x $HOME/Arduino/libraries/ArduinoJson - name: download cores if: steps.cache_all.outputs.cache-hit != 'true' run: | export PATH="$ARDUINO_DIRECTORIES_DATA:$PATH" source $GITHUB_WORKSPACE/travis/common.sh get_core_cli build: needs: [prepare_ide, prepare_example_json] runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: ${{ fromJson(needs.prepare_example_json.outputs.matrix) }} env: CPU: ${{ matrix.cpu }} BOARD: ${{ matrix.board }} CLI_VERSION: ${{ matrix.cliversion }} SKETCH: ${{ matrix.sketch }} ARDUINO_DIRECTORIES_DATA: /home/runner/arduino_ide # Steps represent a sequence of tasks that will be executed as part of the job steps: - uses: actions/checkout@v2 - name: install libgtk2.0-0 run: | sudo apt-get install -y libgtk2.0-0 - name: Get Date id: get-date run: | echo "date=$(/bin/date -u "+%Y%m%d")" >> $GITHUB_OUTPUT shell: bash - uses: actions/cache@v3 id: cache_all with: path: | /home/runner/arduino_ide /home/runner/Arduino key: ${{ runner.os }}-${{ steps.get-date.outputs.date }}-${{ matrix.cliversion }}-cli - name: install python serial if: matrix.cpu == 'esp32' run: | sudo pip3 install pyserial sudo pip install pyserial # sudo apt install python-is-python3 - name: test IDE run: | export PATH="$ARDUINO_DIRECTORIES_DATA:$PATH" which arduino-cli - name: copy code run: | mkdir -p $HOME/Arduino/libraries/ cp -r $GITHUB_WORKSPACE $HOME/Arduino/libraries/arduinoWebSockets - name: build example timeout-minutes: 20 run: | set -ex export PATH="$HOME/arduino_ide:$PATH" source $GITHUB_WORKSPACE/travis/common.sh cd $GITHUB_WORKSPACE build_sketch_cli "$SKETCH" "$BOARD" done: needs: [prepare_ide, prepare_example_json, build, check_version_files] runs-on: ubuntu-latest steps: - name: Done run: | echo DONE