Bingo for meetings- azure integrations–part 10
Bingo
Bingo is a small project, written in TypeScript , and developed with Alexandru Badita in launch break (one hour - more or less). You can find sources at https://github.com/alexandru360/PresentationBingoCards/ . Those are my blog posts for Bingo : ( scroll below for the post)Now it is about Continuous Integrations. We want tests to be run each time we push something to GitHub. For this we could use Azure DevOps. It is free for GitHub public repositories . We want to configure an azure pipeline to automatically run tests that we have in Docker.
So the pipeline will just have to explicit gather the test results ( tests + code coverage ) in order to display in the Azure Pipeline and in the project. Azure DevOps wants the test coverage in JaCoCo or Cobertura . Jest has Istanbul as default test coverage, and Istanbul has Cobertura report. So we modify the jest.config.js to support cobertura
module.exports = {
preset: ‘ts-jest’,
transform: {
‘^.+\\.tsx?$’: ‘ts-jest’,
},
testEnvironment: ‘node’,
collectCoverage: true,
coverageReporters : [“json”, “lcov”, “text”, “clover”,”cobertura”]
};
And to copy when docker building the tests to the local path
docker build ../Src -f docker_ci_test.txt -t bingo_ci_test
docker run -d –rm –name bingo_ci_test_container bingo_ci_test
docker cp bingo_ci_test_container:/app/jest-stare .
docker cp bingo_ci_test_container:/app/junit.xml .
docker cp bingo_ci_test_container:/app/coverage/cobertura-coverage.xml .
docker container kill bingo_ci_test_container
And then copy to the AzureDevOps test system
#https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options?view=vsts&tabs=yaml
variables:
year: $(Date:yyyy)
month: $(Date:MM)
day: $(Date:dd)
uk: $(Date:yyyyMMdd)
messagePush: $(Build.SourceVersionMessage)
name: $(TeamProject)_$(BuildDefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
jobs:
– job: FullTestOnLinux
pool:
vmImage: ‘ubuntu-16.04’
steps:
– checkout: self #skip checking out the default repository resource
clean: true
– script: |
cd dockerize
ls -l
chmod 777 ./ci_test.bat
./ci_test.bat
docker image ls
docker container ls
cp -r -v ./jest-stare $(Build.ArtifactStagingDirectory)/jest-stare/
cp ./junit.xml $(Build.ArtifactStagingDirectory)/junit.xml
cp ./cobertura-coverage.xml $(Build.ArtifactStagingDirectory)/cobertura-coverage.xml
displayName: test DDD
– task: PublishBuildArtifacts@1
inputs:
artifactName: Tests
displayName: ‘Publish Artifact: drop’
– task: PublishTestResults@2
inputs:
testRunner: JUnit
testResultsFiles: ‘$(Build.ArtifactStagingDirectory)/junit.xml’
– task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: ‘cobertura’
summaryFileLocation: ‘$(Build.ArtifactStagingDirectory)/cobertura-coverage.xml’
You can see the tests and the test coverage at https://dev.azure.com/ignatandrei0674/BingoAzureDevOps/_build/results?buildId=953&view=ms.vss-test-web.build-test-results-tab
Leave a Reply