on: [push, pull_request, workflow_dispatch]

jobs:
  build:
    runs-on: docker
    container:
      image: zmkfirmware/zmk-build-arm:stable
    steps:
      - name: Install Dependencies
        run: |
          apt-get update
          apt-get install tree curl -y

      - name: Install Node.JS Workarround, see https://github.com/nektos/act/issues/973
        run: |
          curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
          apt install -y nodejs
          node --version

      - name: Git checkout
        uses: actions/checkout@v4
      - name: Clone ZMK Repo
        run: git clone https://github.com/zmkfirmware/zmk.git

      - name: Initialize ZMK
        working-directory: ./zmk
        run: |
          west init -l app/
          west update
      - name: Build Left Shield
        working-directory: ./zmk/app
        run: west build -d build/left -b nice_nano_v2 -- -DSHIELD=kyria_rev3_left -DZMK_CONFIG="../../config"
      - name: Build Right Shield
        working-directory: ./zmk/app
        run: west build -d build/right -b nice_nano_v2 -- -DSHIELD=kyria_rev3_right -DZMK_CONFIG="../../config"

      - name: Rename artifacts
        working-directory: .
        run: |
          mkdir "./artifacts"
          cp ./zmk/app/build/left/zephyr/zmk.uf2 ./artifacts/kyria_rev3_left-nice_nano_v2-zmk.uf2
          cp ./zmk/app/build/right/zephyr/zmk.uf2 ./artifacts/kyria_rev3_right-nice_nano_v2-zmk.uf2

      - name: Upload Artifacts
        if: ${{ true }}
        uses: actions/upload-artifact@v3
        with:
          name: firmware
          path: ./artifacts