98 lines
4.1 KiB
YAML
98 lines
4.1 KiB
YAML
name: Vercel Deploy Preview
|
|
env:
|
|
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|
|
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
|
|
ALIASES: ${{ vars.ALIASES }}
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
pull_request_target:
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
if: >-
|
|
(
|
|
(
|
|
github.event_name == 'issue_comment' &&
|
|
contains(github.event.comment.body, '/deploy') &&
|
|
github.event.issue.pull_request != null
|
|
) ||
|
|
(
|
|
github.event_name == 'pull_request_target' &&
|
|
contains(fromJson(vars.AUTO_DEPLOY_PRS), github.event.pull_request.number)
|
|
)
|
|
)
|
|
permissions:
|
|
pull-requests: write
|
|
steps:
|
|
- name: Checkout Base To Temp
|
|
uses: actions/checkout@v2
|
|
with:
|
|
path: temp-base-repo
|
|
- name: Get deployment alias
|
|
run: node temp-base-repo/scripts/githubActions.mjs getAlias
|
|
id: alias
|
|
env:
|
|
ALIASES: ${{ env.ALIASES }}
|
|
PULL_URL: ${{ github.event.issue.pull_request.url || github.event.pull_request.url }}
|
|
- name: Checkout PR (comment)
|
|
uses: actions/checkout@v2
|
|
if: github.event_name == 'issue_comment'
|
|
with:
|
|
ref: refs/pull/${{ github.event.issue.number }}/head
|
|
- name: Checkout PR (pull_request)
|
|
uses: actions/checkout@v2
|
|
if: github.event_name == 'pull_request_target'
|
|
with:
|
|
ref: refs/pull/${{ github.event.pull_request.number }}/head
|
|
|
|
- run: npm i -g pnpm@9.0.4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 18
|
|
cache: "pnpm"
|
|
- name: Install Global Dependencies
|
|
run: npm install --global vercel
|
|
- name: Pull Vercel Environment Information
|
|
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
|
|
- name: Write Release Info
|
|
run: |
|
|
echo "{\"latestTag\": \"$(git rev-parse --short ${{ github.event.pull_request.head.sha }})\"}" > assets/release.json
|
|
- name: Build Project Artifacts
|
|
run: vercel build --token=${{ secrets.VERCEL_TOKEN }}
|
|
- run: pnpm build-storybook
|
|
- name: Copy playground files
|
|
run: |
|
|
mkdir -p .vercel/output/static/playground
|
|
pnpm build-playground
|
|
cp -r prismarine-viewer/dist/* .vercel/output/static/playground/
|
|
- name: Write pr redirect index.html
|
|
run: |
|
|
mkdir -p .vercel/output/static/pr
|
|
echo "<meta http-equiv='refresh' content='0;url=https://github.com/${{ github.repository }}/pull/${{ github.event.issue.number || github.event.pull_request.number }}'>" > .vercel/output/static/pr/index.html
|
|
- name: Write commit redirect index.html
|
|
run: |
|
|
mkdir -p .vercel/output/static/commit
|
|
echo "<meta http-equiv='refresh' content='0;url=https://github.com/${{ github.repository }}/pull/${{ github.event.issue.number || github.event.pull_request.number }}/commits/${{ github.event.pull_request.head.sha }}'>" > .vercel/output/static/commit/index.html
|
|
- name: Download Generated Sounds map
|
|
run: node scripts/downloadSoundsMap.mjs
|
|
- name: Deploy Project Artifacts to Vercel
|
|
uses: mathiasvr/command-output@v2.0.0
|
|
with:
|
|
run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
|
|
id: deploy
|
|
- uses: mshick/add-pr-comment@v2
|
|
# if: github.event_name == 'issue_comment'
|
|
with:
|
|
allow-repeats: true
|
|
message: |
|
|
Deployed to Vercel Preview: ${{ steps.deploy.outputs.stdout }}
|
|
[Playground](${{ steps.deploy.outputs.stdout }}/playground/)
|
|
[Storybook](${{ steps.deploy.outputs.stdout }}/storybook/)
|
|
# - run: git checkout next scripts/githubActions.mjs
|
|
- name: Set deployment alias
|
|
if: ${{ steps.alias.outputs.alias != '' && steps.alias.outputs.alias != 'mcraft.fun' && steps.alias.outputs.alias != 's.mcraft.fun' }}
|
|
run: |
|
|
for alias in $(echo ${{ steps.alias.outputs.alias }} | tr "," "\n"); do
|
|
vercel alias set ${{ steps.deploy.outputs.stdout }} $alias --token=${{ secrets.VERCEL_TOKEN }} --scope=zaro
|
|
done
|