Update deploy.yml #25
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Cloudflare Pages | |
env: | |
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
CLOUDFLARE_ACCOUNT_ID: ${{ vars.CLOUDFLARE_ACCOUNT_ID }} | |
CLOUDFLARE_PROJECT_NAME: ${{ vars.CLOUDFLARE_PROJECT_NAME }} | |
CLOUDFLARE_DIRECTORY: _site | |
on: | |
push: | |
branches: ["**"] | |
pull_request_target: | |
permissions: {} | |
jobs: | |
pre-deployment: | |
outputs: | |
branch: ${{ steps.get.outputs.branch }} | |
environment: ${{ steps.get.outputs.environment }} | |
runs-on: ubuntu-latest | |
steps: | |
- id: get | |
run: | | |
if ${{ github.event_name == 'push' }}; then | |
echo "branch=${{ github.ref_name }}" >> "$GITHUB_OUTPUT" | |
if ${{ github.ref_name == 'main' }}; then | |
echo "environment=Production" >> "$GITHUB_OUTPUT" | |
else | |
echo "environment=Preview" >> "$GITHUB_OUTPUT" | |
fi | |
elif ${{ github.event_name == 'pull_request_target' }}; then | |
echo "branch=pull/${{ github.event.number }}/merge" >> "$GITHUB_OUTPUT" | |
if ${{ github.event.head.repo.html_url != github.repository.html_url }}; then | |
echo "environment=External PR" >> "$GITHUB_OUTPUT" | |
else | |
echo "environment=Preview" >> "$GITHUB_OUTPUT" | |
fi | |
else | |
exit 1 | |
fi | |
deployment: | |
needs: ["pre-deployment"] | |
env: | |
BRANCH: ${{ needs.pre-deployment.outputs.branch }} | |
runs-on: ubuntu-latest | |
environment: | |
name: ${{ needs.pre-deployment.outputs.environment }} | |
url: ${{ steps.publish.outputs.url }} | |
permissions: | |
contents: read | |
deployments: write | |
pull-requests: write | |
steps: | |
- id: pr-checkout | |
if: startsWith( needs.pre-deployment.outputs.branch, 'pull/' ) && endsWith( needs.pre-deployment.outputs.branch, '/merge' ) | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: refs/${{ env.BRANCH }} | |
- if: steps.pr-checkout.conclusion == 'skipped' | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
- run: mkdir _site && cp README.md _site/ | |
- id: publish | |
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1.5.0 | |
with: | |
apiToken: ${{ env.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ env.CLOUDFLARE_ACCOUNT_ID }} | |
projectName: ${{ env.CLOUDFLARE_PROJECT_NAME }} | |
directory: ${{ env.CLOUDFLARE_DIRECTORY }} | |
gitHubToken: ${{ secrets.GITHUB_TOKEN }} | |
branch: ${{ env.BRANCH }} | |
- if: ${{ ! cancelled() && github.event_name == 'pull_request_target' }} | |
uses: peter-evans/find-comment@a54c31d7fa095754bfef525c0c8e5e5674c4b4b1 # v2.4.0 | |
id: fc | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: DEPLOYMENT_COMMENT | |
- if: steps.fc.conclusion == 'success' | |
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
<!-- DEPLOYMENT_COMMENT --> | |
<table><tr><td><strong>Latest commit:</strong> </td><td> | |
<code>${{ github.event.pull_request.head.sha }}</code> | |
</td></tr> | |
<tr><td><strong>Status:</strong></td><td> ✅ Deploy successful!</td></tr> | |
<tr><td><strong>Preview URL:</strong></td><td> | |
<a href='${{ steps.publish.outputs.url }}'>${{ steps.publish.outputs.url }}</a> | |
</td></tr> | |
<tr><td><strong>Branch Preview URL:</strong></td><td> | |
<a href='https://${{ env.BRANCH }}.fork-pr-deploy-test.pages.dev'>https://${{ env.BRANCH }}.fork-pr-deploy-test.pages.dev</a> | |
</td></tr> | |
</table> | |
[View workflow logs](${{ github.event.repository.html_url }}/actions/runs/${{ github.run_id }}) | |
[View Cloudflare logs](https://dash.cloudflare.com/?to=/${{ env.CLOUDFLARE_ACCOUNT_ID }}/pages/view/${{ env.CLOUDFLARE_PROJECT_NAME }}/${{ steps.publish.outputs.id }}) | |
edit-mode: replace | |
- uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2 | |
if: failure() && steps.fc.conclusion == 'success' | |
with: | |
token: ${{ secrets.GITHUB_TOKEN}} | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
<!-- DEPLOYMENT_COMMENT --> | |
<table><tr><td><strong>Latest commit:</strong> </td><td> | |
<code>${{ github.event.pull_request.head.sha }}</code> | |
</td></tr> | |
<tr><td><strong>Status:</strong></td><td> ❌ Deploy failed!</td></tr> | |
</table> | |
[View workflow logs](${{ github.event.repository.html_url }}/actions/runs/${{ github.run_id }}) | |
[View Cloudflare logs](https://dash.cloudflare.com/?to=/${{ env.CLOUDFLARE_ACCOUNT_ID }}/pages/view/${{ env.CLOUDFLARE_PROJECT_NAME }}/${{ steps.publish.outputs.id }}) | |
edit-mode: replace |