name: Deploy to GitHub Pages

env:
    PROJECT_PATH: demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj
    OUTPUT_PATH: demo/Ursa.Demo.Browser/bin/Debug/net7.0/browser-wasm/AppBundle
on:
  push:
    branches: [ "deploy" ]
  pull_request:
    branches: [ "deploy" ]

jobs:
  deploy-to-github-pages:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Setup .NET Core SDK
      uses: actions/setup-dotnet@v1.9.0

    - name: Install wasm-tools
      run: dotnet workload install wasm-tools wasm-experimental

    - name: Install DotNetCompress
      run: dotnet tool install --global DotNetCompress --version 2.0.0 --no-cache

    - name: Publish .NET Project
      run: dotnet publish $PROJECT_PATH -c Debug -o debug --nologo

    - name: Change base-tag in index.html
      run: sed -i 's/<base href="\/" \/>/<base href="\/Ursa.Avalonia\/" \/>/g' $OUTPUT_PATH/index.html

    - name: copy index.html to 404.html
      run: cp $OUTPUT_PATH/index.html $OUTPUT_PATH/404.html

    - name: Compress Output using Brotli
      run: DotNetCompress -d $OUTPUT_PATH -p "*.dll" "*.js" "*.wasm" --format br --threads 4

    - name: Compress Output using GZip
      run: DotNetCompress -d $OUTPUT_PATH -p "*.dll" "*.js" "*.wasm" --format gz --threads 4

    - name: Add .nojekyll file
      run: touch $OUTPUT_PATH/.nojekyll

    - name: Commit wwwroot to GitHub Pages
      uses: JamesIves/github-pages-deploy-action@4.1.7
      with:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        BRANCH: gh-pages
        FOLDER: ${{ env.OUTPUT_PATH }}
