name: "Review app"
env:
   DOKKU_GIT_REMOTE_URL: 'ssh://dokku@dokku.baby-buddy.net:22'
on:
  pull_request:
    types: [labeled, unlabeled]
jobs:
  create-review-app:
    runs-on: ubuntu-latest
    environment:
      name: pr-${{ github.event.pull_request.number }}
      url: http://pr-${{ github.event.pull_request.number }}.dokku.baby-buddy.net
    if: github.event.action == 'labeled' && github.event.label.name == 'to review'
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Create review app
        uses: dokku/github-action@master
        with:
          command: review-apps:create
          git_remote_url: ${{ env.DOKKU_GIT_REMOTE_URL }}/demo
          review_app_name: pr-${{ github.event.pull_request.number }}
          ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }}
  destroy-review-app:
    runs-on: ubuntu-latest
    if: github.event.action == 'unlabeled' && github.event.label.name == 'to review'
    steps:
      - name: Destroy review app
        uses: dokku/github-action@master
        with:
          command: review-apps:destroy
          git_remote_url: ${{ env.DOKKU_GIT_REMOTE_URL }}/demo
          review_app_name: pr-${{ github.event.pull_request.number }}
          ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }}
      - name: Delete environment
        uses: strumwolf/delete-deployment-environment@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          environment: pr-${{ github.event.pull_request.number }}
          onlyRemoveDeployments: true