ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
143 lines (133 loc) • 4.46 kB
YAML
name: ohayojp-ohayo
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: env
jobs:
- job: Nodes
steps:
- task: NodeTool@0
inputs:
versionSpec: '12.14.1'
displayName: 'Install Node.js'
- stage: artifacts
dependsOn: env
jobs:
- job: build
steps:
- task: Npm@1
inputs:
command: 'install'
- task: Bash@3
env:
ACCESS_TOKEN: $(ACCESS_TOKEN)
inputs:
targetType: 'filePath'
filePath: 'scripts/ci/build-artifacts.sh'
- stage: test
dependsOn:
- env
jobs:
- job: packages
steps:
- task: Npm@1
inputs:
command: 'install'
- script: |
npm run test
cat ./coverage/lcov.info | ./node_modules/.bin/codecov
env:
CODECOV_TOKEN: $(CODECOV_TOKEN)
- task: PublishCodeCoverageResults@1
displayName: 'publish code coverage results'
condition: succeededOrFailed()
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: $(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
reportDirectory: $(System.DefaultWorkingDirectory)/coverage
failIfCoverageEmpty: true
- task: PublishTestResults@2
displayName: 'publish test results'
condition: succeededOrFailed()
inputs:
searchFolder: $(System.DefaultWorkingDirectory)/junit
failTaskOnFailedTests: true
testRunTitle: OHAYO
testResultsFormat: JUnit
testResultsFiles: '**/TESTS*.xml'
- job: cli
steps:
- task: Npm@1
inputs:
command: 'install'
- script: npm run test:cli
- stage: lint
dependsOn:
- env
jobs:
- job: packages
steps:
- task: Npm@1
inputs:
command: 'install'
- script: npm run lint
- stage: site
dependsOn:
- env
- artifacts
jobs:
- job: Build
steps:
- checkout: self
displayName: 'Checkout'
clean: true
fetchDepth: 1
- task: Npm@1
inputs:
command: 'install'
- script: |
node ./scripts/azure/github-comment.js "[Preview Preparing...](https://dev.azure.com/ohayojp/ohayo/_build/results?buildId=$(Build.BuildId))"
displayName: 'Comment on github'
env:
ACCESS_REPO: $(ACCESS_REPO)
ACCESS_TOKEN: $(ACCESS_TOKEN)
- script: npm run site:build
displayName: 'Build sites'
- script: ls -al src/dist/browser/
displayName: 'List build'
- script: |
export DEPLOY_DOMAIN=https://preview-${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}-ohayojp-ohayo.surge.sh
echo "Deploy to $DEPLOY_DOMAIN"
cp ./src/dist/browser/index.html ./src/dist/browser/404.html
npx surge --project ./src/dist/browser --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}-ohayojp-ohayo.surge.sh
node ./scripts/azure/github-comment.js "[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: npm install
displayName: 'Install modules'
- script: |
node ./scripts/azure/github-comment.js "[Preview Failed](https://dev.azure.com/ohayojp/ohayo/_build/results?buildId=$(Build.BuildId))"
displayName: 'Comment on github'
env:
ACCESS_REPO: $(ACCESS_REPO)
ACCESS_TOKEN: $(ACCESS_TOKEN)