name: Deploy to GitHub Pages env: PROJECT_PATH: demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj OUTPUT_PATH: demo/Semi.Avalonia.Demo.Web/bin/Release/net7.0/browser-wasm/AppBundle on: push: branches: [ "action/deploy" ] pull_request: branches: [ "action/deploy" ] jobs: deploy-to-github-pages: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.1.1 - name: Setup .NET 7 uses: actions/setup-dotnet@v4 with: dotnet-version: 7.0.405 - name: Install wasm-tools run: dotnet workload install wasm-tools wasm-tools-net7 - name: Install DotNetCompress run: dotnet tool install --global DotNetCompress --version 3.0.0 --no-cache - name: Publish .NET Project run: dotnet publish $PROJECT_PATH -c Release -o release --nologo - name: Change base-tag in index.html run: sed -i 's///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@v4.5.0 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: gh-pages FOLDER: ${{ env.OUTPUT_PATH }}