name: Docs Deploy

on:
  push:
    branches:
      - master
    tags:
      - 'v*'
  pull_request:
    paths:
      - './**'

  workflow_dispatch:

env:
  BRANCH_NAME: ${{ github.head_ref || github.ref_name }}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 20
          cache: npm

      - name: Install dependencies
        run: npm ci

      - name: Build with VitePress
        run: |
          npm run docs:build
          touch .vitepress/dist/.nojekyll

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: mavlink_devguide_docs_build
          path: .vitepress/dist/
          retention-days: 1

  deploy:
    if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.merged) }}
    needs: build
    runs-on: ubuntu-latest

    steps:
      - name: Download Artifact
        uses: actions/download-artifact@v5
        with:
          name: mavlink_devguide_docs_build
          path: ~/_book

      - name: Deploy
        env:
          GIT_USER: ${{ secrets.PX4BUILDBOT_USER }}
          GIT_PASS: ${{ secrets.PX4BUILDBOT_PASS }}
        run: |
          git clone https://${{ secrets.PX4BUILDBOT_USER }}:${{ secrets.PX4BUILDBOT_ACCESSTOKEN }}@github.com/mavlink/mavlink.io.git
          # rm -rf mavlink.io/${{ env.BRANCH_NAME }}
          # mkdir -p mavlink.io/${{ env.BRANCH_NAME }}
          # cp -r ~/_book/* mavlink.io/${{ env.BRANCH_NAME }}/
          # mkdir -p mavlink.io
          rm -rf mavlink.io/*
          cp -r ~/_book/* mavlink.io/
          cd mavlink.io
          echo "mavlink.io" > CNAME
          git config user.email "bot@px4.io"
          git config user.name "PX4BuildBot"
          git add *
          git commit -a -m "MAVLink docs build update `date`"
          git push origin master
