name: Build on: push: branches: - device-framework tags: - "v*" pull_request: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: documentation: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: bash -n scripts/*.sh tools/check-ota-partitions.sh tools/portal-hardware tools/lib/*.sh tools/tests/*.sh - run: | for spec in tests/portal-contract/tests/*.js; do node --check "$spec" done - run: ./tools/tests/test-portal-hardware-cli.sh - run: ./tools/check-ota-partitions.sh - run: ./scripts/check-docs.sh compile-tests: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - platform: esp8266 examples: true ota_fixtures: true unity: true - platform: esp32 examples: true ota_fixtures: false unity: true - platform: esp32-current examples: false # Keep current A/B OTA builds in their own worker. PlatformIO uses # one package-name directory for tool-esptoolpy, so mixing legacy # 3.0.5 and current 3.3.11 graphs in a single cache is not a # meaningful compatibility test. ota_fixtures: true unity: true steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - run: python -m pip install --upgrade platformio==6.1.19 - run: ./scripts/test.sh compile --platform ${{ matrix.platform }} - if: matrix.unity run: ./scripts/test.sh unity --platform ${{ matrix.platform }} - if: matrix.platform == 'esp32-current' run: ./scripts/test.sh packages --platform esp32-current - if: matrix.examples run: ./scripts/test.sh examples --platform ${{ matrix.platform }} - if: matrix.ota_fixtures run: ./scripts/test.sh ota-fixtures --platform ${{ matrix.platform }}