element-plus/.github/workflows/pr-docs-deploy.yml

103 lines
3.8 KiB
YAML

# This workflow runs on target, so there is no need to worry about secrets
name: PR Docs Deploy
on:
workflow_run:
workflows: ['PR Docs Build']
types: [completed]
jobs:
# Build successfully, start deployment
on-success:
name: Build successfully
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Download pr number
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow.id }}
run_id: ${{ github.event.workflow_run.id }}
name: pr
- name: Output pr number
id: pr
run: echo "id=$(<pr.txt)" >> $GITHUB_OUTPUT
- name: Download artifact
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow.id }}
run_id: ${{ github.event.workflow_run.id }}
name: docs
- name: Deploy Site
run: |
export DEPLOY_DOMAIN=https://preview-${PULL_REQUEST_NUMBER}-element-plus.surge.sh
echo "Deploy to $DEPLOY_DOMAIN"
npx surge --project ./ --domain $DEPLOY_DOMAIN --token $SURGE_TOKEN
env:
SURGE_TOKEN: ${{ secrets.SURGE_TOKEN }}
PULL_REQUEST_NUMBER: ${{ steps.pr.outputs.id }}
- name: Comment preview link
if: ${{ success() }}
uses: actions-cool/maintain-one-comment@v3.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
[<img width="400" src="https://user-images.githubusercontent.com/10731096/103995277-368b9a00-51d3-11eb-9f8f-67542f560613.png">](https://preview-${{ steps.pr.outputs.id }}-element-plus.surge.sh)
<!-- ELEMENT_PLUS_PREVIEW -->
body-include: '<!-- ELEMENT_PLUS_PREVIEW -->'
number: ${{ steps.pr.outputs.id }}
- name: Comment playground link
if: ${{ success() }}
uses: actions-cool/maintain-one-comment@v3.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
🧪 Playground Preview: https://element-plus.run/?pr=${{ steps.pr.outputs.id }}
Please comment the example via this playground if needed.
<!-- ELEMENT_PLUS_PLAYGROUND -->
body-include: '<!-- ELEMENT_PLUS_PLAYGROUND -->'
number: ${{ steps.pr.outputs.id }}
- name: Deploy has failed
if: ${{ failure() }}
uses: actions-cool/maintain-one-comment@v3.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
[<img width="400" src="https://user-images.githubusercontent.com/10731096/103995139-004e1a80-51d3-11eb-99ba-57e4b04826b4.png">](https://preview-${{ steps.pr.outputs.id }}-element-plus.surge.sh)
<!-- ELEMENT_PLUS_PREVIEW -->
body-include: '<!-- ELEMENT_PLUS_PREVIEW -->'
number: ${{ steps.pr.outputs.id }}
# Build failed, update comment
on-failure:
name: Build failed
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Download pr number
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow.id }}
run_id: ${{ github.event.workflow_run.id }}
name: pr
- name: Output pr number
id: pr
run: echo "id=$(<pr.txt)" >> $GITHUB_OUTPUT
- name: Deploy has failed
uses: actions-cool/maintain-one-comment@v3.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: |
[<img width="400" src="https://user-images.githubusercontent.com/10731096/103995139-004e1a80-51d3-11eb-99ba-57e4b04826b4.png">](https://preview-${{ steps.pr.outputs.id }}-element-plus.surge.sh)
<!-- ELEMENT_PLUS_PREVIEW -->
body-include: '<!-- ELEMENT_PLUS_PREVIEW -->'
number: ${{ steps.pr.outputs.id }}