Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
d9e23ee
create junit artifacts and param for running bm tests
bfjelds Aug 7, 2025
4398b56
rename to collocate artifacts
bfjelds Aug 7, 2025
4ae7a4b
dependsOn, baseimageconfig artifact
bfjelds Aug 7, 2025
0b300bb
cleanup, remove extra stage
bfjelds Aug 8, 2025
542756a
rename param, add comments
bfjelds Aug 8, 2025
5a897b9
try
bfjelds Aug 8, 2025
ba19bd4
pass baseImageArtifactStage
bfjelds Aug 8, 2025
042fdf7
wrong template
bfjelds Aug 8, 2025
ecf6fc9
fix ependsOn
bfjelds Aug 8, 2025
2c127e2
merged
bfjelds Aug 8, 2025
b941c1b
missed one
bfjelds Aug 8, 2025
d636280
rename
bfjelds Aug 8, 2025
9c67e9b
cleanup depends
bfjelds Aug 8, 2025
5ec37eb
missed one
bfjelds Aug 8, 2025
1b36e90
remove
bfjelds Aug 8, 2025
c5dea0b
fix dependency
bfjelds Aug 8, 2025
65e8ca2
fix
bfjelds Aug 8, 2025
53ea117
wait for all tests
bfjelds Aug 8, 2025
db519ed
vm vs bm, host vs container
bfjelds Aug 8, 2025
373b557
fix release.yml
bfjelds Aug 8, 2025
604f939
missed a save
bfjelds Aug 8, 2025
75d7a23
fix output issue
bfjelds Aug 8, 2025
dbcf204
remove unused params
bfjelds Aug 8, 2025
f93648e
handle dev container
bfjelds Aug 8, 2025
a2a58e7
use ob_ for base-image artifact; move base-image config to own stage …
bfjelds Aug 8, 2025
2d6fc8f
remove dependsOn for dev-build.yml
bfjelds Aug 8, 2025
1310439
remove unused
bfjelds Aug 8, 2025
25b473a
remove unused param
bfjelds Aug 8, 2025
5fe75cd
build dev container
bfjelds Aug 8, 2025
bf57aff
remove extra dependsOn
bfjelds Aug 8, 2025
271af00
build-functest is enough depends for functests
bfjelds Aug 8, 2025
ab49abd
fix arch
bfjelds Aug 8, 2025
a982457
save the files
bfjelds Aug 9, 2025
84826dc
shell variable
bfjelds Aug 9, 2025
bd6ff73
override download functest
bfjelds Aug 9, 2025
fadf5c6
go tools do not need base image
bfjelds Aug 9, 2025
c5c10b5
generalize junit skipping
bfjelds Aug 9, 2025
4eff118
fix pr
bfjelds Aug 10, 2025
ca61af0
split architectures
bfjelds Aug 12, 2025
be62780
some fixes
bfjelds Aug 12, 2025
9ddb3e7
arch
bfjelds Aug 12, 2025
c56624a
arch
bfjelds Aug 12, 2025
b71eaaa
arch
bfjelds Aug 12, 2025
c94c539
arch
bfjelds Aug 12, 2025
3f0fe18
scale arch
bfjelds Aug 12, 2025
4a0a8e1
fix staged
bfjelds Aug 12, 2025
f74ff69
stag
bfjelds Aug 12, 2025
d0af8a1
arch
bfjelds Aug 12, 2025
f6b8c0f
fix
bfjelds Aug 12, 2025
952069c
fix
bfjelds Aug 12, 2025
3a581b1
fix
bfjelds Aug 12, 2025
79d53b7
imitate real scenario
bfjelds Aug 12, 2025
67e229f
arm
bfjelds Aug 12, 2025
9125bfb
pr
bfjelds Aug 12, 2025
22f1c4a
remove unused
bfjelds Aug 12, 2025
f47a609
remove unused
bfjelds Aug 12, 2025
9e4e10a
remove unused
bfjelds Aug 12, 2025
5f2c712
amd
bfjelds Aug 12, 2025
a881282
defaults
bfjelds Aug 12, 2025
39a6899
fix job
bfjelds Aug 12, 2025
b045941
validate steps-based prior stage, fix build-image dependsOn for prere…
bfjelds Aug 13, 2025
aa406ab
fix ob
bfjelds Aug 13, 2025
61e5810
fix
bfjelds Aug 13, 2025
8911ff2
runtime
bfjelds Aug 13, 2025
c4e8ade
runtime
bfjelds Aug 13, 2025
f5e472a
unused
bfjelds Aug 13, 2025
24716f3
fix
bfjelds Aug 13, 2025
1a6d2b8
process arm/amd
bfjelds Aug 13, 2025
a4f51cc
fix dependsOn
bfjelds Aug 13, 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
49 changes: 49 additions & 0 deletions .pipelines/templates/e2e-arm64-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# e2e-arm64-template will run arm64 trident tests for each of our scenarios.
# This includes unit tests, integration tests, and end-to-end tests.
#
# Prior to invoking this template, an artifact must be created that
# contains information about the base image being used. This artifact
# should be created by this template:
#
# .pipelines/templates/stages/base_image_config/create-base-image-config-artifact.yml
#
# The stage that creates the artifact should be passed into e2e-arm64-template
# as baseImageArtifactStage. This will ensure that e2e-template waits for
# the base image artifact to be created.
#
parameters:
- name: "stageType"
displayName: "Pipeline configuration type"
type: string
default: ci
values:
- pr-e2e
- pr-e2e-azure
- ci
- pre
- rel
- full-validation

- name: forceTridentRebuild
displayName: "Force trident rebuild rather than downloading previously built."
type: boolean
default: false

- name: osModifierBranch
type: string
default: "submodule"

- name: baseImageArtifactStage
type: string

stages:
# Trident Build/Download
- template: stages/trident_rpms/trident-stage.yml
parameters:
stageType: ${{ parameters.stageType }}
tridentArtifactName: trident-binaries
codeCoverage: false
forceTridentRebuild: ${{ parameters.forceTridentRebuild }}
osModifierBranch: ${{ parameters.osModifierBranch }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}
targetArchitecture: arm64
149 changes: 76 additions & 73 deletions .pipelines/templates/e2e-template.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
# e2e-template will run AMD64 trident tests for each of our scenarios.
# This includes unit tests, integration tests, and end-to-end tests.
#
# Prior to invoking this template, an artifact must be created that
# contains information about the base image being used. This artifact
# should be created by this template:
#
# .pipelines/templates/stages/base_image_config/create-base-image-config-artifact.yml
#
# The stage that creates the artifact should be passed into e2e-template
# as baseImageArtifactStage. This will ensure that e2e-template waits for
# the base image artifact to be created.
#
parameters:
- name: "stageType"
displayName: "Pipeline configuration type"
Expand All @@ -11,23 +24,6 @@ parameters:
- rel
- full-validation

- name: baseimgBuildType
displayName: Base Image build type
type: string
values:
- dev
- preview
- release
default: "release"

- name: baseImagePipelineBuildId
type: string
default: "latestFromBranch"

- name: baseImageArm64PipelineBuildId
type: string
default: "latestFromBranch"

- name: blockPublishing
displayName: "Block publishing to artifact feed"
type: boolean
Expand Down Expand Up @@ -66,18 +62,28 @@ parameters:
type: string
default: "submodule"

- name: baremetalTestsEnabled
type: boolean
default: true

- name: forceFunctionalTestImageRebuild
type: boolean
default: false

- name: baseImageArtifactStage
Comment thread
bfjelds marked this conversation as resolved.
type: string

stages:
# Trident Build/Download
- template: stages/trident_rpms/trident-stage.yml
parameters:
stageType: ${{ parameters.stageType }}
tridentArtifactName: trident-binaries
codeCoverage: false
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
baseImageArm64PipelineBuildId: ${{ parameters.baseImageArm64PipelineBuildId }}
forceTridentRebuild: ${{ parameters.forceTridentRebuild }}
osModifierBranch: ${{ parameters.osModifierBranch }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}
targetArchitecture: amd64

# Build tools (Go stuff)
- template: stages/building_tools/building-tools.yml
Expand All @@ -88,120 +94,104 @@ stages:
parameters:
osModifierBranch: ${{ parameters.osModifierBranch }}


# Build FT base Image, only in CI
- ${{ if eq(parameters.stageType, 'ci') }}:
# Build FT base Image, only for CI or if forceFunctionalTestImageRebuild is true
- ${{ if or(eq(parameters.stageType, 'ci'), eq(parameters.forceFunctionalTestImageRebuild, true)) }}:
# Build Trident installer ISO (host)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-functest
dependsOnTrident: false
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
clones: 1
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident container image
# Build Trident container image (depends on GetTridentBinaries_rpms_amd64)
- template: stages/build_docker_image/trident-container.yml
parameters:
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}

# Build Trident installer ISO (host)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-installer
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
clones: 1
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident split (stage and finalize separated) installer ISO (host)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-split-installer
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
clones: 1
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident installer ISO (container)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-container-installer
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
runtimeEnv: "container"
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
clones: 1
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident test image (regular)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-testimage
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident test image (container)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-container-testimage
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
runtimeEnv: "container"
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident test image for verity (host)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-verity-testimage
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident test image for verity (container)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-container-verity-testimage
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
runtimeEnv: "container"
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident test image for usr-verity (host)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-usrverity-testimage
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

# Build Trident test image for usr-verity (container)
- template: stages/build_image/build-image.yml
parameters:
imageName: trident-container-usrverity-testimage
runtimeEnv: "container"
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}

- ${{ if or(parameters.forceTridentRebuild, eq(parameters.stageType, 'pr-e2e'), eq(parameters.stageType, 'ci'), eq(parameters.stageType, 'pr-e2e-azure')) }}:
# Build USB-ISO
- template: stages/trident_usb_iso/trident-usb-iso.yml
parameters:
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
micBuildType: ${{ parameters.micBuildType }}
micVersion: ${{ parameters.micVersion }}
- ${{ else }}:
Expand All @@ -221,8 +211,6 @@ stages:
# Test Servicing on VMs
- template: stages/testing_servicing/vm-testing.yml
parameters:
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
includeQemu: true
includeUKI: true
includeAzure: ${{ parameters.includeAzure }}
Expand All @@ -235,25 +223,30 @@ stages:
- ${{ if eq(parameters.stageType, 'pre') }}:
# Functional Testing
- template: stages/testing_functional/functional-testing.yml
parameters:
dependsOnStage: ${{ parameters.baseImageArtifactStage }}
${{ if parameters.forceFunctionalTestImageRebuild }}:
downloadPrebuiltImage: false

# VM Testing (host, daily)
- template: stages/testing_vm/netlaunch-testing.yml
parameters:
buildPurpose: "daily"
runtimeEnv: "host"

# BM Testing (host, daily)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "daily"
runtimeEnv: "host"
- ${{ if parameters.baremetalTestsEnabled }}:
# BM Testing (host, daily)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "daily"
runtimeEnv: "host"

# BM Testing (container, daily)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "daily"
runtimeEnv: "container"
extraDependsOn: "BaremetalDeploymentTesting_host"
# BM Testing (container, daily)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "daily"
runtimeEnv: "container"
extraDependsOn: "BaremetalDeploymentTesting_host"

# VM Testing (container, daily)
- template: stages/testing_vm/netlaunch-testing.yml
Expand All @@ -265,6 +258,11 @@ stages:
- ${{ if eq(parameters.stageType, 'full-validation') }}:
# Functional Testing
- template: stages/testing_functional/functional-testing.yml
parameters:
dependsOnStage: ${{ parameters.baseImageArtifactStage }}
${{ if parameters.forceFunctionalTestImageRebuild }}:
downloadPrebuiltImage: false


# VM Testing (host, weekly)
- template: stages/testing_vm/netlaunch-testing.yml
Expand All @@ -278,18 +276,19 @@ stages:
buildPurpose: "weekly"
runtimeEnv: "container"

# BM Testing (host, weekly)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "weekly"
runtimeEnv: "host"
- ${{ if parameters.baremetalTestsEnabled }}:
# BM Testing (host, weekly)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "weekly"
runtimeEnv: "host"

# BM Testing (container, weekly)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "weekly"
runtimeEnv: "container"
extraDependsOn: "BaremetalDeploymentTesting_host"
# BM Testing (container, weekly)
- template: stages/testing_baremetal/baremetal-testing.yml
parameters:
buildPurpose: "weekly"
runtimeEnv: "container"
extraDependsOn: "BaremetalDeploymentTesting_host"

# TESTING stages for CI
- ${{ if eq(parameters.stageType, 'ci') }}:
Expand All @@ -298,6 +297,7 @@ stages:
parameters:
downloadPrebuiltImage: false
osModifierBranch: ${{ parameters.osModifierBranch }}
dependsOnStage: ${{ parameters.baseImageArtifactStage }}


# VM Testing (host, post_merge)
Expand All @@ -318,6 +318,9 @@ stages:
- template: stages/testing_functional/functional-testing.yml
parameters:
rerunTests: false
dependsOnStage: ${{ parameters.baseImageArtifactStage }}
Comment thread
bfjelds marked this conversation as resolved.
${{ if parameters.forceFunctionalTestImageRebuild }}:
downloadPrebuiltImage: false

# VM Testing (host, pullrequest)
- template: stages/testing_vm/netlaunch-testing.yml
Expand Down
8 changes: 6 additions & 2 deletions .pipelines/templates/pipeline-selector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,16 @@ stages:
- ${{ if eq(parameters.targetStage, 'pr') }}:
- template: pr-template.yml
- ${{ else }}:
- template: stages/base_image_config/create-base-image-config-artifact.yml
- template: e2e-template.yml
parameters:
stageType: ${{ parameters.targetStage }}
blockPublishing: ${{ parameters.blockPublishing }}
baseimgBuildType: ${{ parameters.baseimgBuildType }}
baseImagePipelineBuildId: ${{ parameters.baseImagePipelineBuildId }}
# Only perform Azure testing from official pipelines, as only those have access to the Azure subscription.
includeAzure: ${{ or(eq(parameters.targetStage, 'pre'), eq(parameters.targetStage, 'ci'), eq(parameters.targetStage, 'pr-e2e-azure')) }}
numberOfUpdateIterations: ${{ parameters.numberOfUpdateIterations }}
baseImageArtifactStage: CreateBaseImageConfig
- template: e2e-arm64-template.yml
parameters:
stageType: ${{ parameters.targetStage }}
baseImageArtifactStage: CreateBaseImageConfig
Loading