Browse Source

ci: use afc163/surge-preview with all features for PR preview (#11862)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pull/11863/head
afc163 4 months ago
committed by GitHub
parent
commit
23b249ebfb
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 11
      .github/workflows/preview-build.yml
  2. 107
      .github/workflows/preview-deploy.yml
  3. 24
      .github/workflows/preview-start.yml

11
.github/workflows/preview-build.yml

@ -28,14 +28,3 @@ jobs:
name: dist name: dist
path: dist/ path: dist/
retention-days: 5 retention-days: 5
- name: Save PR number
if: ${{ always() }}
run: echo ${{ github.event.number }} > ./pr-id.txt
- name: Upload PR number
if: ${{ always() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: pr
path: ./pr-id.txt

107
.github/workflows/preview-deploy.yml

@ -10,105 +10,34 @@ permissions:
contents: read contents: read
jobs: jobs:
success: deploy:
permissions: permissions:
actions: read # for dawidd6/action-download-artifact to query and download artifacts actions: read # for dawidd6/action-download-artifact to query and download artifacts
issues: write # for actions-cool/maintain-one-comment to modify or create issue comments checks: write # for surge-preview to publish the deployment as a commit check run
pull-requests: write # for actions-cool/maintain-one-comment to modify or create PR comments issues: write # for surge-preview to modify or create issue comments
pull-requests: write # for surge-preview to modify or create PR comments
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
steps: steps:
- name: download pr artifact
uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
name: pr
- name: save PR id
id: pr
run: |
PR_ID=$(<pr-id.txt)
# Validate PR ID is numeric to prevent code injection
if [[ ! "$PR_ID" =~ ^[0-9]+$ ]]; then
echo "Invalid PR ID: $PR_ID"
exit 1
fi
echo "id=$PR_ID" >> "$GITHUB_OUTPUT"
- name: download dist artifact - name: download dist artifact
uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21 uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21
with: with:
workflow: ${{ github.event.workflow_run.workflow_id }} workflow: ${{ github.event.workflow_run.workflow_id }}
workflow_conclusion: success workflow_conclusion: success
name: dist name: dist
path: dist
- name: upload surge service - name: Deploy to Surge
id: deploy uses: afc163/surge-preview@bf90a5a86111f6311ca42f0a5a0f80fb0fb03cec # v1.13.0
run: |
export DEPLOY_DOMAIN=https://ant-design-pro-preview-pr-${{ steps.pr.outputs.id }}.surge.sh
npx surge --project ./ --domain $DEPLOY_DOMAIN --token ${{ secrets.SURGE_TOKEN }}
- name: update status comment
uses: actions-cool/maintain-one-comment-backup@17f644ff1665b05890083f7c1091fef135bce5e4 # v1.2.1
with: with:
token: ${{ secrets.GITHUB_TOKEN }} surge_token: ${{ secrets.SURGE_TOKEN }}
body: | github_token: ${{ secrets.GITHUB_TOKEN }}
🎊 PR Preview has been successfully built and deployed to https://ant-design-pro-preview-pr-${{ steps.pr.outputs.id }}.surge.sh build: echo done
dist: dist
<img width="300" src="https://user-images.githubusercontent.com/507615/90250366-88233900-de6e-11ea-95a5-84f0762ffd39.png"> failOnError: true
teardown: false # preview sites are not torn down automatically
<!-- Sticky Pull Request Comment --> screenshot: true
body-include: '<!-- Sticky Pull Request Comment -->' lighthouse: true
number: ${{ steps.pr.outputs.id }} setCommitStatus: true
env:
- name: The job failed PAGESPEED_API_KEY: ${{ secrets.PAGESPEED_API_KEY }}
if: ${{ failure() }}
uses: actions-cool/maintain-one-comment-backup@17f644ff1665b05890083f7c1091fef135bce5e4 # v1.2.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
😭 Deploy PR Preview failed.
<img width="300" src="https://user-images.githubusercontent.com/507615/90250824-4e066700-de6f-11ea-8230-600ecc3d6a6b.png">
<!-- Sticky Pull Request Comment -->
body-include: '<!-- Sticky Pull Request Comment -->'
number: ${{ steps.pr.outputs.id }}
failed:
permissions:
actions: read # for dawidd6/action-download-artifact to query and download artifacts
issues: write # for actions-cool/maintain-one-comment to modify or create issue comments
pull-requests: write # for actions-cool/maintain-one-comment to modify or create PR comments
runs-on: ubuntu-latest
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'failure'
steps:
- name: download pr artifact
uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
name: pr
- name: save PR id
id: pr
run: |
PR_ID=$(<pr-id.txt)
# Validate PR ID is numeric to prevent code injection
if [[ ! "$PR_ID" =~ ^[0-9]+$ ]]; then
echo "Invalid PR ID: $PR_ID"
exit 1
fi
echo "id=$PR_ID" >> "$GITHUB_OUTPUT"
- name: The job failed
uses: actions-cool/maintain-one-comment-backup@17f644ff1665b05890083f7c1091fef135bce5e4 # v1.2.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
😭 Deploy PR Preview failed.
<img width="300" src="https://user-images.githubusercontent.com/507615/90250824-4e066700-de6f-11ea-8230-600ecc3d6a6b.png">
<!-- Sticky Pull Request Comment -->
body-include: '<!-- Sticky Pull Request Comment -->'
number: ${{ steps.pr.outputs.id }}

24
.github/workflows/preview-start.yml

@ -1,24 +0,0 @@
name: Preview Start
on: pull_request_target
permissions:
contents: read
jobs:
preview:
permissions:
issues: write # for actions-cool/maintain-one-comment to modify or create issue comments
pull-requests: write # for actions-cool/maintain-one-comment to modify or create PR comments
runs-on: ubuntu-latest
steps:
- name: create
uses: actions-cool/maintain-one-comment-backup@17f644ff1665b05890083f7c1091fef135bce5e4 # v1.2.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
⚡️ Deploying PR Preview...
<img src="https://user-images.githubusercontent.com/507615/90240294-8d2abd00-de5b-11ea-8140-4840a0b2d571.gif" width="300" />
<!-- Sticky Pull Request Comment -->
body-include: '<!-- Sticky Pull Request Comment -->'
Loading…
Cancel
Save