# This updates the Web Installer with the files from the docs folder and the binary of the latest release
# it only gets run on:
#  - Manually triggered
# Make sure to also update the lower part of build.yml!

name: Manual Web Installer Update

on:
  workflow_dispatch: # Run on manual trigger
#  push:
#    branches:
#    - rolling
#    paths:
#    - docs # The path filter somehow does not work, so lets run it on every change to rolling
      
jobs:
  manually-update-web-installer:    
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest

    # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
    permissions:
      contents: read
      pages: write
      id-token: write

    steps:
    - name: Checkout
      uses: actions/checkout@v3
      
    - name: Get version of last release
      id: last_release
      uses: mindojo/get-latest-release@0b8ef1434d7468d6bffcc8263baff5c777f72321
      with:
        myToken: ${{ github.token }}
        exclude_types: "draft|prerelease"
        view_top: 1     
      
    - name: Add binary to Web Installer and update manifest
      run: |
        echo "Updating Web installer to use firmware from ${{ steps.last_release.outputs.tag_name }}..."
        rm -f docs/binary/firmware.bin
        wget https://github.com/jomjol/AI-on-the-edge-device/releases/download/${{ steps.last_release.outputs.tag_name }}/AI-on-the-edge-device__update__${{ steps.last_release.outputs.tag_name }}.zip
        unzip AI-on-the-edge-device__update__${{ steps.last_release.outputs.tag_name }}.zip
        cp -f firmware.bin docs/binary/firmware.bin
        echo "Updating index and manifest file..."
        sed -i 's/$VERSION/${{ steps.last_release.outputs.tag_name }}/g' docs/index.html
        sed -i 's/$VERSION/${{ steps.last_release.outputs.tag_name }}/g' docs/manifest.json

    - name: Setup Pages
      uses: actions/configure-pages@v2

    - name: Upload artifact
      uses: actions/upload-pages-artifact@v1
      with:
        path: 'docs'

    - name: Deploy to GitHub Pages
      id: deployment
      uses: actions/deploy-pages@v1   
  
