# 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}}"}'