chore: test publish pipeline
This commit is contained in:
parent
0c7da48f8f
commit
72ed16a343
91
.github/workflows/publish.yaml
vendored
91
.github/workflows/publish.yaml
vendored
|
|
@ -11,14 +11,44 @@ on:
|
||||||
- dev
|
- dev
|
||||||
paths:
|
paths:
|
||||||
- 'apps/www/**'
|
- 'apps/www/**'
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
# When a created pull request from forked repo, it will be comment 'Should deploy to add label'
|
||||||
|
- opened
|
||||||
|
# When a labeled '🚀request-deploy' pull request from forked repo, it will be deploy to Cloudflare Pages
|
||||||
|
- labeled
|
||||||
|
paths:
|
||||||
|
- 'apps/www/**'
|
||||||
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
# eslint-disable-next-line yml/no-empty-mapping-value
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
# default contents: read & write (in forked repos, only read)
|
||||||
|
contents: write
|
||||||
|
# default deployments: read & write (in forked repos, only read)
|
||||||
|
deployments: write
|
||||||
|
# default pull-requests: read & write (in forked repos, only read)
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
deployments: write
|
|
||||||
name: Publish to Cloudflare Pages
|
name: Publish to Cloudflare Pages
|
||||||
|
# push event in main branch
|
||||||
|
# workflow_dispatch event
|
||||||
|
# pull_request event from not forked repo
|
||||||
|
# pull_request_target event with label "🚀request-deploy" from forked repo
|
||||||
|
if: ${{
|
||||||
|
github.event_name == 'push' ||
|
||||||
|
github.event_name == 'workflow_dispatch' ||
|
||||||
|
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) ||
|
||||||
|
(github.event_name == 'pull_request_target' &&
|
||||||
|
github.event.action == 'labeled' &&
|
||||||
|
github.event.pull_request.head.repo.fork == true &&
|
||||||
|
contains(github.event.label.name, '🚀request-deploy'))
|
||||||
|
}}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
@ -70,3 +100,58 @@ jobs:
|
||||||
# Optional: Change the working directory
|
# Optional: Change the working directory
|
||||||
workingDirectory: apps/www
|
workingDirectory: apps/www
|
||||||
wranglerVersion: '3'
|
wranglerVersion: '3'
|
||||||
|
|
||||||
|
- name: Create PR comment
|
||||||
|
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target' }}
|
||||||
|
uses: mshick/add-pr-comment@v2
|
||||||
|
with:
|
||||||
|
message: |
|
||||||
|
### ⚡ Successfully Cloudflare Pages deployed!
|
||||||
|
| Name | Link |
|
||||||
|
| :--- | :--- |
|
||||||
|
| <span aria-hidden="true">🔨</span> Latest commit | ${{ github.event.pull_request.head.sha || github.sha }} |
|
||||||
|
| <span aria-hidden="true">🔍</span> Latest deploy log | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |
|
||||||
|
| <span aria-hidden="true">😎</span> Deploy Preview Url | [${{ steps.cloudflare-pages-deploy.outputs.url }}](${{ steps.cloudflare-pages-deploy.outputs.url }}) |
|
||||||
|
| <span aria-hidden="true">🌳</span> Environment | ${{ steps.cloudflare-pages-deploy.outputs.environment }} |
|
||||||
|
|
||||||
|
- name: Remove label
|
||||||
|
if: ${{ github.event_name == 'pull_request_target' && contains(github.event.label.name, '🚀request-deploy') }}
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
script: |
|
||||||
|
github.rest.issues.removeLabel({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
name: ['🚀request-deploy']
|
||||||
|
})
|
||||||
|
|
||||||
|
# Comment on PR from the fork
|
||||||
|
comment:
|
||||||
|
name: Comment
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
# pull_request_target opened event from forked repo
|
||||||
|
if: ${{
|
||||||
|
github.event_name == 'pull_request_target' &&
|
||||||
|
github.event.action == 'opened' &&
|
||||||
|
github.event.pull_request.head.repo.fork == true
|
||||||
|
}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Create PR comment
|
||||||
|
run: |
|
||||||
|
cat << EOF > comment.md
|
||||||
|
# ⚠️ \`🚀request-deploy\` label is required for deployment
|
||||||
|
|
||||||
|
This repository is a forked repository.
|
||||||
|
Due to security reasons, deployment from forked repositories does not happen automatically.
|
||||||
|
|
||||||
|
To request deployment, please add the \`🚀request-deploy\` label to this pull request.
|
||||||
|
(Only certain members have the ability to add labels.)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
gh pr comment ${{ github.event.number }} -R ${{ github.repository }} -F comment.md
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user