Path: blob/main/build/azure-pipelines/common/sanity-tests.yml
5334 views
parameters:1- name: name2type: string3- name: displayName4type: string5- name: poolName6type: string7- name: os8type: string9default: linux10- name: container11type: string12default: ""13- name: arch14type: string15default: amd6416- name: baseImage17type: string18default: ""19- name: pageSize20type: string21default: ""22- name: args23type: string24default: ""2526jobs:27- job: ${{ parameters.name }}28displayName: ${{ parameters.displayName }}29pool:30name: ${{ parameters.poolName }}31os: ${{ parameters.os }}32timeoutInMinutes: 3033variables:34TEST_DIR: $(Build.SourcesDirectory)/test/sanity35LOG_FILE: $(TEST_DIR)/results.xml36DOCKER_CACHE_DIR: $(Pipeline.Workspace)/docker-cache37DOCKER_CACHE_FILE: $(DOCKER_CACHE_DIR)/${{ parameters.container }}.tar38steps:39- checkout: self40fetchDepth: 141fetchTags: false42sparseCheckoutDirectories: test/sanity .nvmrc43displayName: Checkout test/sanity4445- task: NodeTool@046inputs:47versionSource: fromFile48versionFilePath: .nvmrc49displayName: Install Node.js5051- script: npm config set registry "$(NPM_REGISTRY)" --location=project52workingDirectory: $(TEST_DIR)53displayName: Configure NPM Registry5455- task: npmAuthenticate@056inputs:57workingFile: $(TEST_DIR)/.npmrc58displayName: Authenticate with NPM Registry5960- script: npm ci61workingDirectory: $(TEST_DIR)62displayName: Install NPM Dependencies6364- script: npm run compile65workingDirectory: $(TEST_DIR)66displayName: Compile Sanity Tests6768# Windows69- ${{ if eq(parameters.os, 'windows') }}:70- script: $(TEST_DIR)/scripts/run-win32.cmd -c $(BUILD_COMMIT) -q $(BUILD_QUALITY) -t $(LOG_FILE) -v ${{ parameters.args }}71workingDirectory: $(TEST_DIR)72displayName: Run Sanity Tests7374# macOS75- ${{ if eq(parameters.os, 'macOS') }}:76- bash: $(TEST_DIR)/scripts/run-macOS.sh -c $(BUILD_COMMIT) -q $(BUILD_QUALITY) -t $(LOG_FILE) -v ${{ parameters.args }}77workingDirectory: $(TEST_DIR)78displayName: Run Sanity Tests7980# Native Linux host81- ${{ if and(eq(parameters.container, ''), eq(parameters.os, 'linux')) }}:82- bash: $(TEST_DIR)/scripts/run-ubuntu.sh -c $(BUILD_COMMIT) -q $(BUILD_QUALITY) -t $(LOG_FILE) -v ${{ parameters.args }}83workingDirectory: $(TEST_DIR)84displayName: Run Sanity Tests8586# Linux Docker container87- ${{ if ne(parameters.container, '') }}:88- task: Cache@289inputs:90key: 'docker-v3 | "${{ parameters.container }}" | "${{ parameters.arch }}" | "${{ parameters.pageSize }}" | "$(Agent.OS)" | $(TEST_DIR)/containers/${{ parameters.container }}.dockerfile'91path: $(DOCKER_CACHE_DIR)92restoreKeys: docker-v3 | "${{ parameters.container }}" | "${{ parameters.arch }}" | "${{ parameters.pageSize }}" | "$(Agent.OS)"93cacheHitVar: DOCKER_CACHE_HIT94displayName: Download Docker Image9596- bash: |97docker load -i "$(DOCKER_CACHE_FILE)"98rm -f "$(DOCKER_CACHE_FILE)"99condition: eq(variables.DOCKER_CACHE_HIT, 'true')100displayName: Load Docker Image101102- bash: |103$(TEST_DIR)/scripts/run-docker.sh \104--container "${{ parameters.container }}" \105--arch "${{ parameters.arch }}" \106--base-image "${{ parameters.baseImage }}" \107--page-size "${{ parameters.pageSize }}" \108--quality "$(BUILD_QUALITY)" \109--commit "$(BUILD_COMMIT)" \110--test-results "/root/results.xml" \111--verbose \112${{ parameters.args }}113workingDirectory: $(TEST_DIR)114displayName: Run Sanity Tests115116- bash: |117mkdir -p "$(DOCKER_CACHE_DIR)"118docker save -o "$(DOCKER_CACHE_FILE)" "${{ parameters.container }}"119condition: and(succeeded(), ne(variables.DOCKER_CACHE_HIT, 'true'))120displayName: Save Docker Image121122- task: PublishTestResults@2123inputs:124testResultsFormat: JUnit125testResultsFiles: $(LOG_FILE)126testRunTitle: ${{ parameters.displayName }}127displayName: Publish Test Results128condition: succeededOrFailed()129130131