79 lines
2.7 KiB
YAML
79 lines
2.7 KiB
YAML
name: Deploy PR Preview
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ['Node CI']
|
|
types: [completed]
|
|
|
|
jobs:
|
|
on-success:
|
|
if: ${{ github.repository_owner == 'apache' }}
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Determine if workflow build job is successful
|
|
id: check-build-success
|
|
uses: actions/github-script@v7
|
|
with:
|
|
result-encoding: string
|
|
script: |
|
|
const jobsRes = await github.rest.actions.listJobsForWorkflowRun({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
run_id: context.payload.workflow_run.id
|
|
});
|
|
return jobsRes.data.jobs.some((job) => job.name.includes('build') && job.conclusion === 'success');
|
|
|
|
outputs:
|
|
SHOULD_DEPLOY: ${{ steps.check-build-success.outputs.result }}
|
|
|
|
deploy:
|
|
needs: [on-success]
|
|
if: ${{ needs.on-success.outputs.SHOULD_DEPLOY == 'true' }}
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Install action dependencies
|
|
run: |
|
|
mkdir .actions
|
|
cd .actions
|
|
git clone --depth=1 https://github.com/dawidd6/action-download-artifact.git
|
|
git clone --depth=1 https://github.com/plainheart/maintain-one-comment.git
|
|
|
|
- name: Fetch PR dist files
|
|
uses: ./.actions/action-download-artifact
|
|
with:
|
|
workflow: ${{ github.event.workflow.id }}
|
|
run_id: ${{ github.event.workflow_run.id }}
|
|
name: pr_preview
|
|
path: pr-dist
|
|
if_no_artifact_found: fail
|
|
|
|
- name: Output PR metadata
|
|
id: pr-metadata
|
|
working-directory: pr-dist
|
|
run: |
|
|
echo "NUMBER=$(cat pr_number)" >> $GITHUB_OUTPUT
|
|
echo "COMMIT_SHA=$(cat pr_commit_sha)" >> $GITHUB_OUTPUT
|
|
echo "COMMIT_SHA_SHORT=$(cat pr_commit_sha | cut -c 1-7)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Deploy dist files
|
|
env:
|
|
PR_NUMBER: ${{ steps.pr-metadata.outputs.NUMBER }}
|
|
SURGE_TOKEN: ${{ secrets.SURGE_TOKEN }}
|
|
working-directory: pr-dist
|
|
run: |
|
|
export SURGE_DOMAIN=https://echarts-pr-$PR_NUMBER.surge.sh
|
|
npx surge --project ./package --domain $SURGE_DOMAIN --token $SURGE_TOKEN
|
|
|
|
- name: Create comment for PR preview
|
|
uses: ./.actions/maintain-one-comment
|
|
env:
|
|
PR_NUMBER: ${{ steps.pr-metadata.outputs.NUMBER }}
|
|
COMMIT_SHA_SHORT: ${{ steps.pr-metadata.outputs.COMMIT_SHA_SHORT }}
|
|
with:
|
|
body: |
|
|
The changes brought by this PR can be previewed at: https://echarts.apache.org/examples/editor?version=PR-${{ env.PR_NUMBER }}@${{ env.COMMIT_SHA_SHORT }}
|
|
body-include: '<!-- ECHARTS_PR_PREVIEW -->'
|
|
number: ${{ env.PR_NUMBER }}
|