name: Build on macOS
on:
  workflow_dispatch:
  push:
    branches:
      - 'test_workflow'
      - 'develop'
      - 'master'

jobs:
  build:
    runs-on: macos-12
    steps:
      - name: Clean workspace
        run: |
          echo "Cleaning up previous run"
          rm -rf "${{ github.workspace }}"
          mkdir -p "${{ github.workspace }}"

      - name: Checkout pico-examples
        uses: actions/checkout@v2
        with:
          path: pico-examples

      - name: Checkout pico-sdk/develop
        uses: actions/checkout@v2
        with:
          repository: raspberrypi/pico-sdk
          ref: develop
          path: pico-sdk

      - name: Checkout pico-sdk submodules
        working-directory: ${{github.workspace}}/pico-sdk
        run: git submodule update --init
      - name: Install dependencies
        run: |
          brew install cmake
          brew tap ArmMbed/homebrew-formulae
          brew install arm-none-eabi-gcc

      - name: Build Project
        working-directory: ${{github.workspace}}/pico-examples
        # bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
        shell: bash
        run: |
          mkdir build
          cd build
          cmake .. -G "Unix Makefiles" -DPICO_SDK_PATH=../../pico-sdk -DCMAKE_BUILD_TYPE=Debug -DPICO_BOARD=pico_w
          cmake --build .

      - name: Build Native
        working-directory: ${{github.workspace}}/pico-examples
        # bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
        shell: bash
        run: |
          mkdir build_native
          cd build_native
          cmake .. -G "Unix Makefiles" -DPICO_SDK_PATH=../../pico-sdk -DCMAKE_BUILD_TYPE=Debug -DPICO_PLATFORM=host
          cmake --build .