FluidFramework/tools/pipelines/test-real-service.yml

178 строки
7.2 KiB
YAML

# Copyright (c) Microsoft Corporation and contributors. All rights reserved.
# Licensed under the MIT License.
# test-real-service-e2e pipeline
name: $(Build.BuildId)
trigger: none
pr: none
resources:
pipelines:
- pipeline: client # Name of the pipeline resource
source: Build - client packages
branch: main # Default branch for manual/scheduled triggers if none is selected
trigger:
branches:
- release/*
- main
- next
- lts
variables:
- group: prague-key-vault
- name: testWorkspace
value: $(Pipeline.Workspace)/test
- name: testPackage
value: "@fluid-private/test-end-to-end-tests"
readonly: true
- name: absolutePathToTelemetryGenerator
value: $(Build.SourcesDirectory)/tools/telemetry-generator
readonly: true
- name: pipelineIdentifierForTelemetry
value: 'EndToEndTests'
readonly: true
# This is a test pipeline, not a build one, so we don't need to run CodeQL tasks
- name: DisableCodeQL
value: true
lockBehavior: sequential
stages:
- template: templates/include-test-real-service.yml
parameters:
stageId: e2e_local_server
stageDisplayName: e2e - local server
poolBuild: Large-eastus2 # Need Large pool for full-compat matrix
testPackage: ${{ variables.testPackage }}
testWorkspace: ${{ variables.testWorkspace }}
artifactBuildId: $(resources.pipeline.client.runID)
testCommand: test:realsvc:local:report:full
cacheCompatVersionsInstalls: true
uploadTestPassRateTelemetry: true
pipelineIdentifierForTelemetry: ${{ variables.pipelineIdentifierForTelemetry }}
env:
FLUID_TEST_LOGGER_PKG_PATH: ${{ variables.testWorkspace }}/node_modules/@ff-internal/aria-logger # Contains getTestLogger impl to inject
FLUID_LOGGER_PROPS: '{ "displayName": "${{variables.pipelineIdentifierForTelemetry}}"}'
# end-to-end tests tinylicious
- template: templates/include-test-real-service.yml
parameters:
stageId: e2e_tinylicious
stageDisplayName: e2e - tinylicious
poolBuild: Large-eastus2 # Need Large pool for full-compat matrix
testPackage: ${{ variables.testPackage }}
testWorkspace: ${{ variables.testWorkspace }}
artifactBuildId: $(resources.pipeline.client.runID)
testCommand: test:realsvc:tinylicious:report:full
cacheCompatVersionsInstalls: true
# TODO: AB#8968 tracks figuring out the root cause of the extended delay, and restoring this timeout to 90m or less
timeoutInMinutes: 120
uploadTestPassRateTelemetry: true
pipelineIdentifierForTelemetry: ${{ variables.pipelineIdentifierForTelemetry }}
env:
FLUID_TEST_LOGGER_PKG_PATH: ${{ variables.testWorkspace }}/node_modules/@ff-internal/aria-logger # Contains getTestLogger impl to inject
FLUID_LOGGER_PROPS: '{ "displayName": "${{variables.pipelineIdentifierForTelemetry}}"}'
# Disable colorization for tinylicious logs (not useful when printing to a file)
logger__colorize: "false" # Need to pass it as string so ADO doesn't convert it into False (capital F) which doesn't work
logger__morganFormat: tiny
# end-to-end tests routerlicious
- template: templates/include-test-real-service.yml
parameters:
stageId: e2e_routerlicious
stageDisplayName: e2e - routerlicious
poolBuild: Small-eastus2
testPackage: ${{ variables.testPackage }}
testWorkspace: ${{ variables.testWorkspace }}
artifactBuildId: $(resources.pipeline.client.runID)
testCommand: test:realsvc:routerlicious:report
continueOnError: true
r11sSelfSignedCertSecureFile: wu2-tls-certificate.pem
stageVariables:
- group: e2e-r11s-lock
splitTestVariants:
- name: Non-compat
flags: --compatVersion=0
- name: N-1
flags: --compatVersion=-1
- name: LTS
flags: --compatVersion=LTS
- name: Cross-version
flags: --compatVersion=CROSS_VERSION
cacheCompatVersionsInstalls: true
uploadTestPassRateTelemetry: true
pipelineIdentifierForTelemetry: ${{ variables.pipelineIdentifierForTelemetry }}
env:
fluid__test__driver__r11s: $(automation-fluid-test-driver-r11s)
FLUID_TEST_LOGGER_PKG_PATH: ${{ variables.testWorkspace }}/node_modules/@ff-internal/aria-logger # Contains getTestLogger impl to inject
FLUID_LOGGER_PROPS: '{ "displayName": "${{variables.pipelineIdentifierForTelemetry}}"}'
# end-to-end tests frs
- template: templates/include-test-real-service.yml
parameters:
stageId: e2e_frs
stageDisplayName: e2e - frs
poolBuild: Small-eastus2
testPackage: ${{ variables.testPackage }}
testWorkspace: ${{ variables.testWorkspace }}
artifactBuildId: $(resources.pipeline.client.runID)
timeoutInMinutes: 360
continueOnError: true
testCommand: test:realsvc:frs:report
r11sSelfSignedCertSecureFile: wu2-tls-certificate.pem
stageVariables:
- group: e2e-frs-lock
splitTestVariants:
- name: Non-compat
flags: --compatVersion=0
- name: N-1
flags: --compatVersion=-1
- name: LTS
flags: --compatVersion=LTS
- name: Cross-Version
flags: --compatVersion=CROSS_VERSION
cacheCompatVersionsInstalls: true
uploadTestPassRateTelemetry: true
pipelineIdentifierForTelemetry: ${{ variables.pipelineIdentifierForTelemetry }}
env:
fluid__test__driver__frs: $(automation-fluid-test-driver-frs)
FLUID_TEST_LOGGER_PKG_PATH: ${{ variables.testWorkspace }}/node_modules/@ff-internal/aria-logger # Contains getTestLogger impl to inject
FLUID_LOGGER_PROPS: '{ "displayName": "${{variables.pipelineIdentifierForTelemetry}}"}'
# end-to-end tests odsp
- template: templates/include-test-real-service.yml
parameters:
stageId: e2e_odsp
stageDisplayName: e2e - odsp
poolBuild: Small-eastus2
testPackage: ${{ variables.testPackage }}
testWorkspace: ${{ variables.testWorkspace }}
artifactBuildId: $(resources.pipeline.client.runID)
timeoutInMinutes: 360
continueOnError: true
testCommand: test:realsvc:odsp:report
stageVariables:
- group: e2e-odsp-lock
splitTestVariants:
- name: Non-compat
flags: --compatVersion=0 --tenantIndex=0
- name: N-1
flags: --compatVersion=-1 --tenantIndex=1
- name: Cross-Version
flags: --compatVersion=CROSS_VERSION
# Assumes Non-compat and N-1 scenarios are covered
# Tests N-2 to LTS+1 back compat for loader
# Tests N-2 to LTS+3 back compat for loader + driver
- name: N-2ToLTS+1-back-compat
flags: --compatVersion=V2_INT_3 --tenantIndex=3
cacheCompatVersionsInstalls: true
uploadTestPassRateTelemetry: true
pipelineIdentifierForTelemetry: ${{ variables.pipelineIdentifierForTelemetry }}
env:
login__microsoft__clientId: $(login-microsoft-clientId)
login__odsp__test__tenants: $(automation-e2e-login-odsp-test-tenants)
FLUID_TEST_LOGGER_PKG_PATH: ${{ variables.testWorkspace }}/node_modules/@ff-internal/aria-logger # Contains getTestLogger impl to inject
FLUID_LOGGER_PROPS: '{ "displayName": "${{variables.pipelineIdentifierForTelemetry}}"}'