Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
176d3fe
Initial plan
Copilot Oct 3, 2025
55ec77c
feat(ci): Add e2e tests against latest docker images
Copilot Oct 3, 2025
8cb0132
fix: Address PR feedback
Copilot Oct 6, 2025
165e6ea
correct pool name
tylerbutler Oct 7, 2025
d4ed6d5
fix compose paths
tylerbutler Oct 7, 2025
dcf9b4e
source path
tylerbutler Oct 7, 2025
4e0c926
fixes
tylerbutler Oct 7, 2025
0581584
set working dir
tylerbutler Oct 7, 2025
fbcdb6f
working dir fix
tylerbutler Oct 7, 2025
bf7140c
variables
tylerbutler Oct 7, 2025
8f79bb6
syntax
tylerbutler Oct 7, 2025
40b8c6d
fix path
tylerbutler Oct 7, 2025
2771dec
build kafka and zookeeper
tylerbutler Oct 7, 2025
7c7c589
Merge branch 'server-pnpm' into copilot/fix-5682770f-0461-4c09-a83c-7…
tylerbutler Oct 7, 2025
3715a3a
Merge branch 'main' into copilot/fix-5682770f-0461-4c09-a83c-7c6fe73b…
tylerbutler Oct 7, 2025
e6de246
Merge branch 'test/tylerbu/e2e-r11s-docker' into copilot/fix-5682770f…
tylerbutler Oct 7, 2025
a8c9c64
testing
tylerbutler Oct 7, 2025
344d2b9
testing
tylerbutler Oct 7, 2025
9864a1b
rm workspace flag
tylerbutler Oct 7, 2025
0c0d67b
use correct variant
tylerbutler Oct 7, 2025
0c3e2f5
Merge branch 'main' into test/tylerbu/e2e-r11s-docker
tylerbutler Oct 7, 2025
ea364d0
refactor: Simplify pipeline checkout logic
Copilot Oct 7, 2025
8b278c6
test
tylerbutler Oct 7, 2025
a0fd44d
test
tylerbutler Oct 8, 2025
70bca16
update
tylerbutler Oct 8, 2025
06388cb
set path
tylerbutler Oct 8, 2025
963a800
fix paths
tylerbutler Oct 8, 2025
843eda2
syntax
tylerbutler Oct 8, 2025
16d5d60
macros
tylerbutler Oct 8, 2025
2a4f230
debuggin
tylerbutler Oct 8, 2025
140fc6f
debugging
tylerbutler Oct 8, 2025
b72e0ff
sources
tylerbutler Oct 8, 2025
90bd7ba
updates
tylerbutler Oct 8, 2025
2d3fd62
compose path
tylerbutler Oct 8, 2025
5e1afe8
Merge branch 'main' into test/tylerbu/e2e-r11s-docker
tylerbutler Oct 8, 2025
b9343e5
allow all previously used scripts
tylerbutler Oct 8, 2025
1cab3fe
Merge branch 'server-pnpm' into test/tylerbu/e2e-r11s-docker
tylerbutler Oct 8, 2025
4123eee
feedback
tylerbutler Oct 8, 2025
075c2bc
reorder steps
tylerbutler Oct 8, 2025
7fe40fe
Apply suggestion from @tylerbutler
tylerbutler Oct 8, 2025
a624f61
cleanup
tylerbutler Oct 8, 2025
20d2649
it was used, terrible name
tylerbutler Oct 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 26 additions & 8 deletions server/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,34 @@
services:
proxy:
platform: linux/amd64/v3
image: nginx:latest
depends_on:
- "alfred"
- "historian"
- "nexus"
volumes:
- ./routerlicious/nginx.conf:/etc/nginx/nginx.conf
ports:
- "3003:3003"
- "3002:3002"
- "3001:3001"
alfred:
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/server:${ALFRED_IMAGE_TAG:-latest}
ports:
- "3003:3000"
expose:
- "3000"
command: node packages/routerlicious/dist/alfred/www.js
environment:
- DEBUG=fluid:*
- NODE_ENV=development
- IS_FLUID_SERVER=true
restart: always
# THIS VOLUMES IS FOR LOCAL TESTING, IT SHOULD NOT GET MERGED
volumes:
- ./routerlicious/packages/routerlicious/config/config.json:/usr/src/server/packages/routerlicious/config/config.json
nexus:
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/server:${ALFRED_IMAGE_TAG:-latest}
ports:
- "3002:3000"
expose:
- "3000"
command: node packages/routerlicious/dist/nexus/www.js
environment:
- DEBUG=fluid:*
Expand Down Expand Up @@ -63,15 +79,17 @@ services:
restart: always
historian:
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/historian:${HISTORIAN_IMAGE_TAG:-latest}
ports:
- "3001:3000"
expose:
- "3000"
environment:
- DEBUG=fluid:*
- NODE_ENV=development
- IS_FLUID_SERVER=true
# volumes:
# - ./routerlicious/packages/routerlicious/config/config.json:/home/node/server/packages/routerlicious/config.json
restart: always
gitrest:
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/gitrest:${HISTORIAN_IMAGE_TAG:-latest}
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/gitrest:${GITREST_IMAGE_TAG:-latest}
environment:
- DEBUG=fluid:*
- NODE_ENV=development
Expand All @@ -80,7 +98,7 @@ services:
- git:/home/node/documents
restart: always
git:
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/gitssh:${HISTORIAN_IMAGE_TAG:-latest}
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/gitssh:${GITSSH_IMAGE_TAG:-latest}
ports:
- "3022:22"
volumes:
Expand Down
7 changes: 4 additions & 3 deletions server/routerlicious/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
services:
proxy:
platform: linux/amd64/v3
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
Expand Down Expand Up @@ -105,7 +106,7 @@ services:
- IS_FLUID_SERVER=true
restart: always
historian:
image: mcr.microsoft.com/fluidframework/routerlicious/historian:latest
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/historian:${HISTORIAN_IMAGE_TAG:-latest}
expose:
- "3000"
environment:
Expand All @@ -114,7 +115,7 @@ services:
- IS_FLUID_SERVER=true
restart: always
gitrest:
image: mcr.microsoft.com/fluidframework/routerlicious/gitrest:latest
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/gitrest:${GITREST_IMAGE_TAG:-latest}
environment:
- DEBUG=fluid:*
- NODE_ENV=development
Expand All @@ -123,7 +124,7 @@ services:
- git:/home/node/documents
restart: always
git:
image: mcr.microsoft.com/fluidframework/routerlicious/gitssh:latest
image: ${REGISTRY_URL:-mcr.microsoft.com}/fluidframework/routerlicious/gitssh:${GITSSH_IMAGE_TAG:-latest}
ports:
- "3022:22"
volumes:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
"endpoint": "zookeeper:2181"
},
"storage": {
"enableWholeSummaryUpload": false,
"enableWholeSummaryUpload": true,
"ephemeralDocumentTTLSec": 86400,
"storageUrl": "http://gitrest:3000"
},
Expand Down
18 changes: 16 additions & 2 deletions tools/pipelines/templates/include-test-real-service.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,14 @@ parameters:
- none
- sequential

- name: preSteps
type: stepList
default: []

- name: checkout
type: boolean
default: false

stages:
- stage: ${{ parameters.stageId}}
${{ if ne(parameters.lockBehavior, 'none') }}:
Expand Down Expand Up @@ -167,8 +175,12 @@ stages:

steps:
# Setup
- checkout: ff_pipeline_host
clean: true
- ${{ if eq(parameters.checkout, true) }}:
- checkout: self
clean: true
- ${{ else }}:
- checkout: ff_pipeline_host
clean: true

# Install self-signed cert for R11s deployment in local cert store
- ${{ if ne(parameters.r11sSelfSignedCertSecureFile, '') }}:
Expand Down Expand Up @@ -229,6 +241,8 @@ stages:

- template: /tools/pipelines/templates/include-setup-npmrc-for-download.yml@self

- ${{ parameters.preSteps }}

- task: Bash@3
displayName: Install base dependencies
inputs:
Expand Down
76 changes: 75 additions & 1 deletion tools/pipelines/test-real-service.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ parameters:

resources:
pipelines:
- pipeline: client # Name of the pipeline resource
- pipeline: client
source: Build - client packages
branch: main # Default branch for manual/scheduled triggers if none is selected
trigger:
Expand All @@ -29,6 +29,18 @@ resources:
- main
- next
- lts
- pipeline: routerlicious
source: server-routerlicious
branch: main # Default branch for manual/scheduled triggers if none is selected
- pipeline: historian
source: server-historian
branch: main # Default branch for manual/scheduled triggers if none is selected
- pipeline: gitrest
source: server-gitrest
branch: main # Default branch for manual/scheduled triggers if none is selected
- pipeline: gitssh
source: server-gitssh
branch: main # Default branch for manual/scheduled triggers if none is selected
repositories:
- repository: ff_pipeline_host
type: git
Expand Down Expand Up @@ -128,6 +140,68 @@ stages:
FLUID_TEST_LOGGER_PKG_SPECIFIER: '@ff-internal/aria-logger' # Contains createTestLogger impl to inject
FLUID_LOGGER_PROPS: '{ "displayName": "${{variables.pipelineIdentifierForTelemetry}}"}'

# end-to-end tests docker
- template: templates/include-test-real-service.yml
parameters:
stageId: e2e_docker
stageDisplayName: e2e - docker
poolBuild: Large
testPackage: ${{ variables.testPackage }}
testWorkspace: ${{ variables.testWorkspace }}
artifactBuildId: $(resources.pipeline.client.runID)
continueOnError: true
testCommand: test:realsvc:r11s:docker
checkout: true
stageVariables:
- group: container-registry-info
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 }}
preSteps:
- task: Docker@2
displayName: 'Login to container registry'
inputs:
# $(containerRegistryConnection) comes from the container-registry-info variable group and needs to be
# specified as a runtime variable (variables from variable groups apparently are never available "statically"
# at parse/compile time, so can't be used with template-expression syntax ( '${{ }}' )).
containerRegistry: 'Fluid Container Registry' # $(containerRegistryConnection)
command: 'login'
- task: DockerCompose@1
displayName: 'Start routerlicious environment in docker'
inputs:
containerregistrytype: 'Container Registry'
dockerComposeFile: 'server/docker-compose.yml'
action: 'Run a Docker Compose command'
dockerComposeCommand: 'up -d'
projectName: 'routerlicious'
env:
REGISTRY_URL: fluidcr.azurecr.io/build
ALFRED_IMAGE_TAG: 0.0.$(resources.pipeline.routerlicious.runID)
HISTORIAN_IMAGE_TAG: 0.0.$(resources.pipeline.historian.runID)
GITREST_IMAGE_TAG: 0.0.$(resources.pipeline.gitrest.runID)
GITSSH_IMAGE_TAG: 0.0.$(resources.pipeline.gitssh.runID)
additionalSteps:
- task: DockerCompose@1
displayName: 'Stop routerlicious environment in docker'
condition: always()
inputs:
containerregistrytype: 'Container Registry'
dockerComposeFile: 'server/docker-compose.yml'
action: 'Run a Docker Compose command'
dockerComposeCommand: 'down'
projectName: 'routerlicious'
env:
FLUID_TEST_LOGGER_PKG_SPECIFIER: '@ff-internal/aria-logger' # Contains createTestLogger impl to inject

# end-to-end tests AFR
- template: /tools/pipelines/templates/include-test-real-service.yml@self
parameters:
Expand Down