chore: deploy.yml の更新 (#345) #23
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 |