name: Preview label on: pull_request_target: types: - labeled env: TEAM_CORE_DEVELOPER: core-developers jobs: check_preview_label: name: Check for preview label if: github.event.action == 'labeled' && github.event.label.name == 'preview' runs-on: ubuntu-20.04 steps: - name: Check if label was added by core developer id: core_developer continue-on-error: true uses: octokit/request-action@v2.x with: route: GET /orgs/OpenTTD/teams/${{ env.TEAM_CORE_DEVELOPER }}/memberships/${{ github.event.sender.login }} env: GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - if: steps.core_developer.outcome == 'failure' name: Remove preview label if not core developer uses: octokit/request-action@v2.x with: route: DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/preview owner: ${{ github.event.repository.owner.login }} repo: ${{ github.event.repository.name }} issue_number: ${{ github.event.number }} env: GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - if: steps.core_developer.outcome == 'success' name: Create deployment id: deployment uses: octokit/request-action@v2.x with: route: POST /repos/{owner}/{repo}/deployments mediaType: | previews: - ant-man - flash owner: ${{ github.event.repository.owner.login }} repo: ${{ github.event.repository.name }} ref: ${{ github.event.pull_request.head.sha }} task: deploy:preview auto_merge: false required_contexts: "[]" environment: preview-pr-${{ github.event.number }} description: "Preview for Pull Request #${{ github.event.number }}" env: GITHUB_TOKEN: ${{ secrets.PREVIEW_GITHUB_TOKEN }} - if: steps.core_developer.outcome == 'success' name: Trigger 'preview build' uses: peter-evans/repository-dispatch@v2 with: token: ${{ secrets.PREVIEW_GITHUB_TOKEN }} event-type: "Preview build #${{ github.event.number }}" client-payload: '{"folder": "pr${{ github.event.number }}", "sha": "${{ github.event.pull_request.head.sha }}", "deployment_id": "${{ fromJson(steps.deployment.outputs.data).id }}"}'