name: ng-alain trigger: - master pool: vmImage: 'ubuntu-latest' pr: autoCancel: true branches: exclude: - gh-pages stages: - stage: Env jobs: - job: Nodes steps: - task: NodeTool@0 inputs: versionSpec: '12.14.1' displayName: 'Install Node.js' - stage: build dependsOn: env jobs: - job: Build steps: - script: yarn install displayName: 'Install' - script: | node ./scripts/_ci/github-comment.js "RELEASE" "[Using release @delon, Preview Preparing...](https://dev.azure.com/ng-alain/ng-alain/_build/results?buildId=$(Build.BuildId))" displayName: 'Comment on github' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) - task: Bash@3 displayName: 'Build' inputs: targetType: 'filePath' filePath: './scripts/_ci/deploy-pipelines.sh' - script: ls -al dist/ displayName: 'List build' - script: | export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-ng-alain.surge.sh echo "Deploy to $DEPLOY_DOMAIN" cp ./dist/index.html ./dist/404.html npx surge --project ./dist --domain $DEPLOY_DOMAIN displayName: 'Deploy Site' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) SURGE_LOGIN: $(SURGE_LOGIN) SURGE_TOKEN: $(SURGE_TOKEN) - script: | export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-ng-alain.surge.sh node ./scripts/_ci/github-comment.js "RELEASE" "[Using release @delon, Preview is ready!]($DEPLOY_DOMAIN)" displayName: 'Update comment on github' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) - job: Build_Failed dependsOn: Build condition: failed() steps: - checkout: self displayName: 'Checkout' clean: true fetchDepth: 1 - script: yarn install displayName: 'Install' - script: | node ./scripts/_ci/github-comment.js "RELEASE" "[Using release @delon, Preview Failed](https://dev.azure.com/ng-alain/delon/_build/results?buildId=$(Build.BuildId))" displayName: 'Comment on github' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) - stage: build_day dependsOn: env jobs: - job: Build steps: - script: yarn install displayName: 'Install' - script: | node ./scripts/_ci/github-comment.js "RELEASE_DAY" "[Using day release @delon, Preview Preparing...](https://dev.azure.com/ng-alain/ng-alain/_build/results?buildId=$(Build.BuildId))" displayName: 'Comment on github' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) - task: Bash@3 displayName: 'Build' inputs: targetType: 'filePath' filePath: './scripts/_ci/deploy-pipelines.sh' arguments: '-day' - script: ls -al dist/ displayName: 'List build' - script: | export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-day-ng-alain.surge.sh echo "Deploy to $DEPLOY_DOMAIN" cp ./dist/index.html ./dist/404.html npx surge --project ./dist --domain $DEPLOY_DOMAIN displayName: 'Deploy Site' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) SURGE_LOGIN: $(SURGE_LOGIN) SURGE_TOKEN: $(SURGE_TOKEN) - script: | export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-day-ng-alain.surge.sh node ./scripts/_ci/github-comment.js "RELEASE_DAY" "[Using day release @delon, Preview is ready!]($DEPLOY_DOMAIN)" displayName: 'Update comment on github' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) - job: Build_Failed dependsOn: Build condition: failed() steps: - checkout: self displayName: 'Checkout' clean: true fetchDepth: 1 - script: yarn install displayName: 'Install' - script: | node ./scripts/_ci/github-comment.js "RELEASE_DAY" "[Using day release @delon, Preview Failed](https://dev.azure.com/ng-alain/delon/_build/results?buildId=$(Build.BuildId))" displayName: 'Comment on github' env: ACCESS_REPO: $(ACCESS_REPO) ACCESS_TOKEN: $(ACCESS_TOKEN) - stage: lint dependsOn: - env jobs: - job: site steps: - script: yarn install displayName: 'Install' - script: | npx stylelint --version yarn run lint - stage: test dependsOn: - env jobs: - job: site steps: - script: yarn install displayName: 'Install' - script: npx ng test --no-progress --browsers=ChromeHeadlessCI --code-coverage --no-watch