name: Deploy Benchmark Dashboard

on:
  push:
    branches:
      - master
    paths:
      - 'docs/benchmark/**'

permissions:
  contents: read
  pages: write
  id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    steps:
    - uses: actions/checkout@v6

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

    - name: Prepare site structure
      run: |
        mkdir -p _site/benchmark
        cp -r docs/benchmark/* _site/benchmark/
        cat > _site/index.html << 'EOF'
        <!DOCTYPE html>
        <html>
        <head>
          <meta charset="utf-8">
          <meta http-equiv="refresh" content="0; url=https://abcvoting.readthedocs.io/">
          <link rel="canonical" href="https://abcvoting.readthedocs.io/">
          <title>Redirecting to abcvoting documentation</title>
        </head>
        <body>
          <p>Redirecting to <a href="https://abcvoting.readthedocs.io/">abcvoting documentation</a>...</p>
        </body>
        </html>
        EOF

    - name: Upload artifact
      uses: actions/upload-pages-artifact@v3
      with:
        path: '_site'

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