Skip to content

ci(deps): update denoland/setup-deno action to v1.3.0 (#88) #342

ci(deps): update denoland/setup-deno action to v1.3.0 (#88)

ci(deps): update denoland/setup-deno action to v1.3.0 (#88) #342

Workflow file for this run

name: Deployment
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
# tool versions
# renovate: datasource=github-releases depName=denoland/deno
DENO_VERSION: v1.45.2
on:
push:
branches: ["**"]
pull_request_target:
permissions: {}
jobs:
pre-deployment:
if: ${{ vars.CLOUDFLARE_PROJECT_NAME != '' }}
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"
elif ${{ github.event_name == 'pull_request_target' }}; then
echo "branch=pull/${{ github.event.number }}/merge" >> "$GITHUB_OUTPUT"
if ${{ github.event.pull_request.head.repo.html_url != github.event.repository.html_url }}; then
echo "environment=External PR" >> "$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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
ref: refs/${{ env.BRANCH }}
- if: steps.pr-checkout.conclusion == 'skipped'
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
ref: ${{ env.BRANCH }}
- name: Setup Deno
uses: denoland/setup-deno@ba9dcf3bc3696623d1add6a2f5181ee1b5143de5 # v1.3.0
with:
deno-version: ${{ env.DENO_VERSION }}
- name: Build
run: deno task build
- id: publish
# This workflow does NOT work with v1.5.0
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@3eae4d37986fb5a8592848f6a574fdf654e61f9e # v3.1.0
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: "github-actions[bot]"
body-includes: DEPLOYMENT_COMMENT
- id: comment-data
if: steps.fc.conclusion == 'success'
run: |
head_sha=$(git rev-parse HEAD)
get_short_sha_with_link() {
echo "<a href='${{ github.event.repository.html_url }}/commit/$1'><code>$(echo "$1" | head -c 7)</code></a>"
}
echo "commit_text=$(get_short_sha_with_link $(git rev-parse HEAD)) ( base: $(get_short_sha_with_link ${{ github.event.pull_request.base.sha }}) + head: $(get_short_sha_with_link ${{ github.event.pull_request.head.sha }}) )" >> "$GITHUB_OUTPUT"
echo "pr_preview_url=$(echo '${{ steps.publish.outputs.url }}' | perl -pe "s|(//).+?(\.)|\$1$(echo '${{ env.BRANCH }}' | perl -pe 's|/|-|g')\$2|")" >> "$GITHUB_OUTPUT"
- if: steps.fc.conclusion == 'success'
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
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>
${{ steps.comment-data.outputs.commit_text }}
</td></tr>
<tr><td><strong>Status:</strong></td><td>&nbsp;✅&nbsp; 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>PR Preview URL:</strong></td><td>
<a href='${{ steps.comment-data.outputs.pr_preview_url }}'>${{ steps.comment-data.outputs.pr_preview_url }}</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@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
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>
${{ steps.comment-data.outputs.commit_text }}
</td></tr>
<tr><td><strong>Status:</strong></td><td>&nbsp;❌&nbsp; 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