Azure DevOps Create React App Pipeline
The following azure pipeline yaml file works for create-react-app version 3.0.1.
Install the package jest-junit
for unit test code coverage results to be published.
In the root of the repository, create a file called azure-pipelines.yml
with the following content.
trigger:
- master
pool:
vmImage: "Ubuntu-16.04"
steps:
- task: NodeTool@0
inputs:
versionSpec: "10.x"
displayName: "Install Node.js"
- script: npm ci
displayName: "npm ci"
- script: npm run build
displayName: "npm build"
env:
CI: true
- script: npm test -- --coverage --ci --reporters=default --reporters=jest-junit --coverageReporters=cobertura
displayName: "npm test"
env:
CI: true
- task: PublishTestResults@2
displayName: "Publish Test Results"
inputs:
testResultsFiles: junit.xml
mergeTestResults: true
condition: succeededOrFailed()
- task: PublishCodeCoverageResults@1
displayName: "Publish code coverage"
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: "$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml"
reportDirectory: "$(System.DefaultWorkingDirectory)/coverage"
failIfCoverageEmpty: true
Install Node.js task
Even though the pool
vmImage
Ubuntu-16.04
has a version of nodeJS installed already, this task is helpful to make sure the react app build will not start using a newer node version when the vm image updates.
npm test task
At present with the script npm test
on its own, the build will just run in watch mode. As the docs at create react app suggests, adding an environment variable CI
fixes this. This might get fixed in the future.