From 1585b829be5e341ec5475c27531de3c8d1dc8c2d Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Wed, 18 May 2022 15:54:54 +0300 Subject: [PATCH] Add CI workflow for popular PlatformIO projects (#4273) * Add CI workflow for popular PlatformIO projects * Run projects CI on each commit * Run mega2560 env for Marlin project * Run projects CI on several OS with Python 3.9 * Use the latest version of 3rd party actions Co-authored-by: Ivan Kravets --- .github/workflows/projects.yml | 66 ++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/projects.yml diff --git a/.github/workflows/projects.yml b/.github/workflows/projects.yml new file mode 100644 index 00000000..29a01714 --- /dev/null +++ b/.github/workflows/projects.yml @@ -0,0 +1,66 @@ +name: Projects + +on: [push, pull_request] + +jobs: + build: + strategy: + fail-fast: false + matrix: + project: + - marlin: + repository: "MarlinFirmware/Marlin" + folder: "Marlin" + config_dir: "Marlin" + env_name: "mega2560" + - esphome: + repository: "esphome/esphome" + folder: "esphome" + config_dir: "esphome" + env_name: "esp32-arduino" + - smartknob: + repository: "scottbez1/smartknob" + folder: "smartknob" + config_dir: "smartknob/firmware" + env_name: "view" + - espurna: + repository: "xoseperez/espurna" + folder: "espurna" + config_dir: "espurna/code" + env_name: "nodemcu-lolin" + - OpenMQTTGateway: + repository: "1technophile/OpenMQTTGateway" + folder: "OpenMQTTGateway" + config_dir: "OpenMQTTGateway" + env_name: "esp32-m5atom" + os: [ubuntu-latest, windows-latest, macos-latest] + + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + with: + submodules: "recursive" + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: 3.9 + + - name: Install PlatformIO + run: pip install -U . + + - name: Check out ${{ matrix.project.repository }} + uses: actions/checkout@v2 + with: + submodules: "recursive" + repository: ${{ matrix.project.repository }} + path: ${{ matrix.project.folder }} + + - name: Install ESPHome dependencies + # Requires esptool package as it's used in a custom prescript + if: ${{ contains(matrix.project.repository, 'esphome') }} + run: pip install esptool==3.* + + - name: Compile ${{ matrix.project.repository }} + run: pio run -d ${{ matrix.project.config_dir }} -e ${{ matrix.project.env_name }} +