name: Preview Deploy

on:
  workflow_run:
    workflows: ['Preview Build']
    types:
      - completed

jobs:
  success:
    runs-on: ubuntu-latest
    if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
    steps:
      - name: download pr artifact
        uses: dawidd6/action-download-artifact@v2
        with:
          workflow: ${{ github.event.workflow_run.workflow_id }}
          name: pr
      - name: save PR id
        id: pr
        run: echo "::set-output name=id::$(<pr-id.txt)"
      - name: download dist artifact
        uses: dawidd6/action-download-artifact@v2
        with:
          workflow: ${{ github.event.workflow_run.workflow_id }}
          workflow_conclusion: success
          name: dist
      - run: |
          unzip dist.zip
      - name: upload to surge
        id: deploy
        run: |
          export DEPLOY_DOMAIN=https://vue-devui-pr-${{ steps.pr.outputs.id }}.surge.sh
          npx surge --project packages/devui-vue/docs/.vitepress/dist/ --domain $DEPLOY_DOMAIN --token ${{ secrets.SURGE_TOKEN }}
      - name: create comment
        uses: peter-evans/create-or-update-comment@v2
        with:
          issue-number: ${{ steps.pr.outputs.id }}
          body: |
            PR preview has been successfully built and deployed to https://vue-devui-pr-${{ steps.pr.outputs.id }}.surge.sh.
      - run: |
          rm -rf packages/devui-vue/docs/.vitepress/dist
      - name: The job failed
        if: ${{ failure() }}
        uses: peter-evans/create-or-update-comment@v2
        with:
          issue-number: ${{ steps.pr.outputs.id }}
          body: |
            Deploy PR preview failed.
  failed:
    runs-on: ubuntu-latest
    if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'failure'
    steps:
      - name: download pr artifact
        uses: dawidd6/action-download-artifact@v2
        with:
          workflow: ${{ github.event.workflow_run.workflow_id }}
          name: pr
      - name: save PR id
        id: pr
        run: echo "::set-output name=id::$(<pr-id.txt)"
      - name: The job failed
        uses: peter-evans/create-or-update-comment@v2
        with:
          issue-number: ${{ steps.pr.outputs.id }}
          body: |
            Deploy PR preview failed.