diff --git a/.github/workflows/arduino.yml b/.github/workflows/arduino.yml new file mode 100644 index 00000000..4816fb06 --- /dev/null +++ b/.github/workflows/arduino.yml @@ -0,0 +1,68 @@ +# This is the name of the workflow, visible on GitHub UI. +name: Arduino Build + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the main branch + push: + branches: [ main ] + pull_request: + branches: [ main ] + +# This is the list of jobs that will be run concurrently. +# Since we use a build matrix, the actual number of jobs +# started depends on how many configurations the matrix +# will produce. +jobs: + # This is the name of the job - can be whatever. + build: + # Here we tell GitHub that the jobs must be determined + # dynamically depending on a matrix configuration. + strategy: + matrix: + # The matrix will produce one job for each configuration + # parameter of type `arduino-platform`, in this case, it + # is only 1. + arduino-platform: ["esp32:esp32"] + additional_urls: + - https://dl.espressif.com/dl/package_esp32_index.json + # This is usually optional but we need to statically define the + # FQBN of the boards we want to test for each platform. In the + # future the CLI might automatically detect and download the core + # needed to compile against a certain FQBN, at that point the + # following `include` section will be useless. + include: + # This works like this: when the platformn is "arduino:avr", the + # variable `fqbn` is set to "arduino:avr:uno". + - arduino-platform: "esp32:esp32" + fqbn: "esp32:esp32:fm-devkit" + platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json + + # This is the platform GitHub will use to run our workflow, + # I picked ubuntu. + runs-on: ubuntu-latest + + # This is the list of steps this job will run. + steps: + # First of all, we clone the repo using the `checkout` action. + - name: Checkout + uses: actions/checkout@main + + # We use the `arduino/setup-arduino-cli` action to install and + # configure the Arduino CLI on the system. + - name: Setup Arduino CLI + uses: arduino/setup-arduino-cli@v1.1.1 + + + # We then install the platform, which one will be determined + # dynamically by the build matrix. + - name: Install platform + run: | + arduino-cli core update-index + arduino-cli core install $ + # Finally, we compile the sketch, using the FQBN that was set + # in the build matrix. + - name: Compile Sketch + run: arduino-cli compile --fqbn $ ./Arduino/Esp32/Main --warnings more --output-dir bin ./Arduino/Esp32/bin --libraries ./Arduino/libs/ + +