-
-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change action to not use an immutable build.
- Loading branch information
1 parent
c9ec9eb
commit 353c41a
Showing
1 changed file
with
160 additions
and
160 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,160 +1,160 @@ | ||
# Publish | ||
|
||
name: Publish | ||
|
||
# Controls when the workflow will run | ||
on: | ||
# Triggers the workflow on push event, but only for main branch | ||
push: | ||
branches: | ||
- main | ||
# Triggers the workflow on pull request event, but only for pull request from not forked repo | ||
pull_request: | ||
types: | ||
- opened | ||
- synchronize | ||
# Triggers the workflow on pull request event, but only for pull request opened or pull request labeled with "🚀request-deploy" (from forked repo) | ||
# pull_request is not allowed to use secrets, so we use pull_request_target instead (in forked repos) | ||
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 | ||
# Allows you to run this workflow manually from the Actions tab | ||
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 | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
# Deploy | ||
deploy: | ||
name: Deploy | ||
runs-on: ${{ matrix.os }} | ||
# 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')) | ||
}} | ||
|
||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
node: [18] | ||
# Cancel previous runs that are not completed yet | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.head.ref || github.ref }} | ||
cancel-in-progress: true | ||
timeout-minutes: 10 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha || github.ref }} | ||
fetch-depth: 0 | ||
|
||
- name: Remove built-in Yarn | ||
run: npm uninstall -g yarn | ||
|
||
- name: Enable Corepack | ||
run: corepack enable | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: ${{ matrix.node }} | ||
cache: 'yarn' | ||
|
||
- name: Install dependencies | ||
run: yarn install --immutable --check-cache | ||
|
||
- name: Build website | ||
run: yarn build | ||
|
||
- name: Publish to Cloudflare Pages | ||
id: cloudflare-pages-deploy | ||
uses: cloudflare/pages-action@v1 | ||
with: | ||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | ||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
projectName: docusauruscommunitywebsite | ||
directory: build | ||
gitHubToken: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Create commit comment | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | ||
uses: peter-evans/commit-comment@v2 | ||
with: | ||
body: | | ||
### ⚡ Successfully deployed to Cloudflare Pages! | ||
| <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: Create PR comment | ||
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target' }} | ||
uses: mshick/add-pr-comment@v2 | ||
with: | ||
message: | | ||
### ⚡ Successfully deployed to Cloudflare Pages! | ||
| <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 | ||
# ⚠️ Deployments require the '🚀request-deploy' label | ||
This repository is a forked repository. For security reasons, deployments from forked repositories are not automatic. | ||
To request a deployment, add the '🚀request-deploy' label to this pull request. (Only some members can add labels). | ||
EOF | ||
gh pr comment ${{ github.event.number }} -R ${{ github.repository }} -F comment.md | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# Publish | ||
|
||
name: Publish | ||
|
||
# Controls when the workflow will run | ||
on: | ||
# Triggers the workflow on push event, but only for main branch | ||
push: | ||
branches: | ||
- main | ||
# Triggers the workflow on pull request event, but only for pull request from not forked repo | ||
pull_request: | ||
types: | ||
- opened | ||
- synchronize | ||
# Triggers the workflow on pull request event, but only for pull request opened or pull request labeled with "🚀request-deploy" (from forked repo) | ||
# pull_request is not allowed to use secrets, so we use pull_request_target instead (in forked repos) | ||
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 | ||
# Allows you to run this workflow manually from the Actions tab | ||
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 | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
# Deploy | ||
deploy: | ||
name: Deploy | ||
runs-on: ${{ matrix.os }} | ||
# 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')) | ||
}} | ||
|
||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
node: [18] | ||
# Cancel previous runs that are not completed yet | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.head.ref || github.ref }} | ||
cancel-in-progress: true | ||
timeout-minutes: 10 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha || github.ref }} | ||
fetch-depth: 0 | ||
|
||
- name: Remove built-in Yarn | ||
run: npm uninstall -g yarn | ||
|
||
- name: Enable Corepack | ||
run: corepack enable | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: ${{ matrix.node }} | ||
cache: 'yarn' | ||
|
||
- name: Install dependencies | ||
run: yarn install --check-cache | ||
|
||
- name: Build website | ||
run: yarn build | ||
|
||
- name: Publish to Cloudflare Pages | ||
id: cloudflare-pages-deploy | ||
uses: cloudflare/pages-action@v1 | ||
with: | ||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | ||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
projectName: docusauruscommunitywebsite | ||
directory: build | ||
gitHubToken: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Create commit comment | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} | ||
uses: peter-evans/commit-comment@v2 | ||
with: | ||
body: | | ||
### ⚡ Successfully deployed to Cloudflare Pages! | ||
| <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: Create PR comment | ||
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target' }} | ||
uses: mshick/add-pr-comment@v2 | ||
with: | ||
message: | | ||
### ⚡ Successfully deployed to Cloudflare Pages! | ||
| <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 | ||
# ⚠️ Deployments require the '🚀request-deploy' label | ||
This repository is a forked repository. For security reasons, deployments from forked repositories are not automatic. | ||
To request a deployment, add the '🚀request-deploy' label to this pull request. (Only some members can add labels). | ||
EOF | ||
gh pr comment ${{ github.event.number }} -R ${{ github.repository }} -F comment.md | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
353c41a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⚡ Successfully deployed to Cloudflare Pages!
| 🔨 Latest commit | 353c41a |
| 🔍 Latest deploy log | https://github.com/DocusaurusCommunity/website/actions/runs/10229756142 |
| 😎 Deploy preview URL | https://42b83562.docusauruscommunitywebsite.pages.dev |
| 🌳 Environment | production |