element-plus/.github/azure-pipelines.yml

65 lines
2.1 KiB
YAML

name: Element Plus
trigger: none
pr:
autoCancel: true
branches:
exclude:
- gh-pages
pool:
vmImage: 'ubuntu-latest'
variables:
YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn
stages:
- stage: Preview
jobs:
- job: Build_Preview
steps:
- checkout: self
displayName: 'Checkout'
clean: true
fetchDepth: 1
- task: NodeTool@0
displayName: 'Install Node.js'
inputs:
versionSpec: '12.20.0'
- task: Cache@2
inputs:
key: 'yarn | "$(Agent.OS)" | yarn.lock'
restoreKeys: |
yarn | "$(Agent.OS)"
yarn
path: $(YARN_CACHE_FOLDER)
displayName: Cache Yarn packages
- script: yarn bootstrap
displayName: 'Project bootstrap'
- script: yarn website-build
displayName: 'Build website'
- script: |
export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-element-plus.surge.sh
echo "Deploy to $DEPLOY_DOMAIN"
npx surge --project ./website-dist --domain $DEPLOY_DOMAIN
displayName: 'Deploy Site'
env:
SURGE_LOGIN: $(SURGE_LOGIN)
SURGE_TOKEN: $(SURGE_TOKEN)
- script: |
export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-element-plus.surge.sh
curl -X POST ${BOT_URL} -H 'Content-Type:application/json' --data-raw '{"botAction":"Preview", "pr":'${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}', "url":"'${DEPLOY_DOMAIN}'"}'
displayName: 'Update PR comment'
env:
BOT_URL: $(BOT_URL)
- job: Build_Preview_Failed
dependsOn: Build_Preview
condition: failed()
steps:
- script: |
curl -X POST ${BOT_URL} -H 'Content-Type:application/json' --data-raw '{"status":"error", "botAction":"Preview", "pr":'${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}'}'
displayName: 'Update PR comment'
env:
BOT_URL: $(BOT_URL)