name: Build
on:
  schedule:
  - cron: '0 3 * * *'
  workflow_dispatch:

jobs:
  buildroot:
    name: Firmware
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        platform:
          - hi3516cv200_lite_trassir-tr-d4121ir1-v2
          - hi3518ev200_lite_smartwares-cip-37210
          - hi3518ev200_lite_switcam-hs303
          - hi3518ev200_lite_switcam-hs303-v2
          - hi3518ev200_lite_vstarcam-c8892wip
          - hi3518ev200_lite_qtech-qvc-ipc-136w
          - hi3518ev300_lite_xiaomi-mjsxj02hl
          - ssc30kd_lite_chinatelecom-ds-ytj5301
          - ssc325_lite_imilab-ec3-cmsxj25a
          - ssc325de_lite_imou-c22ep-s2
          - ssc333_lite_meari-speed-6s
          - ssc333_lite_tp-link-tapo-c110-v2
          - ssc335_lite_tp-link-tapo-c110-v1
          - ssc335_lite_trassir-tr-w2c1-v2
          - ssc335de_lite_uniview-c1l-2wn-g
          - t21_lite_wansview-q5-1080p
          - t31_lite_aoni-ep01j05
          - t31_lite_chinatelecom-y4h-50
          - t31_lite_xiaomi-mjsxj03hl

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Prepare
        run: |
          echo "8.8.8.8 invisible-mirror.net" | sudo tee -a /etc/hosts
          echo "8.8.8.8 distfiles.dereferenced.org" | sudo tee -a /etc/hosts
          git clone https://github.com/openipc/firmware --depth 1

      - name: Build
        run: |
          export GIT_HASH=$(git rev-parse --short ${GITHUB_SHA})
          export GIT_BRANCH=${GITHUB_REF_NAME}

          NAME=${{matrix.platform}}
          cp -rf devices/${NAME}/* firmware
          cd firmware
          make BOARD=${NAME} all

          NORFW=$(find output/images -name openipc*nor*)
          if [ ! -z ${NORFW} ]; then
            mv ${NORFW} ../${NAME}-nor.tgz
            echo NORFW=${GITHUB_WORKSPACE}/${NAME}-nor.tgz >> ${GITHUB_ENV}
          fi

          NANDFW=$(find output/images -name openipc*nand*)
          if [ ! -z ${NANDFW} ]; then
            mv ${NANDFW} ../${NAME}-nand.tgz
            echo NANDFW=${GITHUB_WORKSPACE}/${NAME}-nand.tgz >> ${GITHUB_ENV}
          fi

      - name: Upload
        uses: softprops/action-gh-release@v1
        with:
          tag_name: latest
          files: |
            ${{env.NORFW}}
            ${{env.NANDFW}}
