Skip to content

Commit

Permalink
Change action to not use an immutable build.
Browse files Browse the repository at this point in the history
  • Loading branch information
homotechsual committed Aug 3, 2024
1 parent c9ec9eb commit 353c41a
Showing 1 changed file with 160 additions and 160 deletions.
320 changes: 160 additions & 160 deletions .github/workflows/publish.yml
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 }}

1 comment on commit 353c41a

@github-actions
Copy link

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 |

Please sign in to comment.