diff --git a/.pipelines/.vsts-vhd-builder-release-windows.yaml b/.pipelines/.vsts-vhd-builder-release-windows.yaml index fee210088a0..ad32bec2c8b 100644 --- a/.pipelines/.vsts-vhd-builder-release-windows.yaml +++ b/.pipelines/.vsts-vhd-builder-release-windows.yaml @@ -60,116 +60,108 @@ parameters: # Use variable group "ab-windows-ms-tenant" and link it to the pipeline "[TEST All VHDs] AKS Windows VHD Build - Msft Tenant" stages: - - stage: build_vhd_2019_containerd - dependsOn: [] - condition: eq('${{ parameters.build2019containerd }}', True) + - stage: build jobs: - - job: build - timeoutInMinutes: 180 - steps: - - bash: | - echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' - echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' - echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1' - echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' - echo '##vso[task.setvariable variable=WINDOWS_SKU]2019-containerd' - echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_2019_BASE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2019_NANO_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2019_CORE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' - displayName: Setup Build Variables - - template: ./templates/.builder-release-template-windows.yaml - parameters: - artifactName: 2019-containerd + - job: build_vhd_2019_containerd + dependsOn: [] + condition: eq('${{ parameters.build2019containerd }}', True) + timeoutInMinutes: 180 + steps: + - bash: | + echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' + echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' + echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1' + echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' + echo '##vso[task.setvariable variable=WINDOWS_SKU]2019-containerd' + echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_2019_BASE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2019_NANO_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2019_CORE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' + displayName: Setup Build Variables + - template: ./templates/.builder-release-template-windows.yaml + parameters: + artifactName: 2019-containerd - - stage: build_vhd_2022_containerd - dependsOn: [] - condition: eq('${{ parameters.build2022containerd }}', True) - jobs: - - job: build - timeoutInMinutes: 180 - steps: - - bash: | - echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' - echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' - echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1' - echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' - echo '##vso[task.setvariable variable=WINDOWS_SKU]2022-containerd' - echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_2022_BASE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' - displayName: Setup Build Variables - - template: ./templates/.builder-release-template-windows.yaml - parameters: - artifactName: 2022-containerd + - job: build_vhd_2022_containerd + dependsOn: [] + condition: eq('${{ parameters.build2022containerd }}', True) + timeoutInMinutes: 180 + steps: + - bash: | + echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' + echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' + echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1' + echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' + echo '##vso[task.setvariable variable=WINDOWS_SKU]2022-containerd' + echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_2022_BASE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' + displayName: Setup Build Variables + - template: ./templates/.builder-release-template-windows.yaml + parameters: + artifactName: 2022-containerd - - stage: build_vhd_2022_containerd_gen2 - dependsOn: [] - condition: eq('${{ parameters.build2022containerdgen2 }}', True) - jobs: - - job: build - timeoutInMinutes: 180 - steps: - - bash: | - echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' - echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' - echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2' - echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' - echo '##vso[task.setvariable variable=WINDOWS_SKU]2022-containerd-gen2' - echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_2022_GEN2_BASE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' - displayName: Setup Build Variables - - template: ./templates/.builder-release-template-windows.yaml - parameters: - artifactName: 2022-containerd-gen2 + - job: build_vhd_2022_containerd_gen2 + dependsOn: [] + condition: eq('${{ parameters.build2022containerdgen2 }}', True) + timeoutInMinutes: 180 + steps: + - bash: | + echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' + echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' + echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2' + echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' + echo '##vso[task.setvariable variable=WINDOWS_SKU]2022-containerd-gen2' + echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_2022_GEN2_BASE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' + displayName: Setup Build Variables + - template: ./templates/.builder-release-template-windows.yaml + parameters: + artifactName: 2022-containerd-gen2 - - stage: build_vhd_23H2 - dependsOn: [] - condition: eq('${{ parameters.build23H2 }}', True) - jobs: - - job: build - timeoutInMinutes: 180 - steps: - - bash: | - echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' - echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' - echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1' - echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' - echo '##vso[task.setvariable variable=WINDOWS_SKU]23H2' - echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_23H2_BASE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' - displayName: Setup Build Variables - - template: ./templates/.builder-release-template-windows.yaml - parameters: - artifactName: 23H2 + - job: build_vhd_23H2 + dependsOn: [] + condition: eq('${{ parameters.build23H2 }}', True) + timeoutInMinutes: 180 + steps: + - bash: | + echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' + echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' + echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1' + echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' + echo '##vso[task.setvariable variable=WINDOWS_SKU]23H2' + echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_23H2_BASE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' + displayName: Setup Build Variables + - template: ./templates/.builder-release-template-windows.yaml + parameters: + artifactName: 23H2 + + - job: build_vhd_23H2_gen2 + dependsOn: [] + condition: eq('${{ parameters.build23H2gen2 }}', True) + timeoutInMinutes: 180 + steps: + - bash: | + echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' + echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' + echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2' + echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' + echo '##vso[task.setvariable variable=WINDOWS_SKU]23H2-gen2' + echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_23H2_GEN2_BASE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' + echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' + displayName: Setup Build Variables + - template: ./templates/.builder-release-template-windows.yaml + parameters: + artifactName: 23H2-gen2 - - stage: build_vhd_23H2_gen2 - dependsOn: [] - condition: eq('${{ parameters.build23H2gen2 }}', True) - jobs: - - job: build - timeoutInMinutes: 180 - steps: - - bash: | - echo '##vso[task.setvariable variable=VHD_DEBUG]${{parameters.vhddebug}}' - echo '##vso[task.setvariable variable=DRY_RUN]${{parameters.dryrun}}' - echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2' - echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D4s_v3' - echo '##vso[task.setvariable variable=WINDOWS_SKU]23H2-gen2' - echo '##vso[task.setvariable variable=WINDOWS_BASE_IMAGE_URL]$(WINDOWS_23H2_GEN2_BASE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_NANO_IMAGE_URL]$(WINDOWS_2022_NANO_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_CORE_IMAGE_URL]$(WINDOWS_2022_CORE_IMAGE_URL)' - echo '##vso[task.setvariable variable=WINDOWS_PRIVATE_PACKAGES_URL]$(PRIVATE_PACKAGES_URL)' - displayName: Setup Build Variables - - template: ./templates/.builder-release-template-windows.yaml - parameters: - artifactName: 23H2-gen2 - - stage: backfill_cleanup_outdated_resources dependsOn: [] condition: always() @@ -192,4 +184,13 @@ stages: -e OS_TYPE="Windows" \ ${AZURE_CONTAINER_IMAGE} make -f packer.mk backfill-cleanup displayName: Backfill Clean Up Older Resources - condition: eq(variables.ENABLE_BACKFILL_CLEANUP, 'True') \ No newline at end of file + condition: eq(variables.ENABLE_BACKFILL_CLEANUP, 'True') + + - stage: e2e + condition: ne(variables.SKIP_E2E_TESTS, 'true') + variables: + VHD_BUILD_ID: $(Build.BuildId) + LOCATION: $(PACKER_BUILD_LOCATION) + TAGS_TO_RUN: "os=windows" + jobs: + - template: ./templates/e2e-template.yaml diff --git a/.pipelines/.vsts-vhd-builder-release.yaml b/.pipelines/.vsts-vhd-builder-release.yaml index ce2d37332e3..d68c2b6c39b 100644 --- a/.pipelines/.vsts-vhd-builder-release.yaml +++ b/.pipelines/.vsts-vhd-builder-release.yaml @@ -1268,5 +1268,6 @@ stages: variables: VHD_BUILD_ID: $(Build.BuildId) LOCATION: $(PACKER_BUILD_LOCATION) + TAGS_TO_SKIP: "os=windows" jobs: - template: ./templates/e2e-template.yaml diff --git a/.pipelines/e2e-windows.yaml b/.pipelines/e2e-windows.yaml deleted file mode 100644 index db1900e0974..00000000000 --- a/.pipelines/e2e-windows.yaml +++ /dev/null @@ -1,147 +0,0 @@ -name: $(Date:yyyyMMdd)$(Rev:.r)_e2e -trigger: none -pr: - branches: - include: - - master - - dev - - 'official/*' - paths: - include: - - .pipelines/e2e-windows.yaml - - .pipelines/templates/e2e-windows-template.yaml - - 'e2e/windows/*' - - 'parts/windows/*' - - 'staging/cse/windows/*' - exclude: - - staging/cse/windows/README - -# Use variable group "ab-windows-ms-tenant" and link it to the pipeline "Agentbaker Windows E2E" - -pool: - # uncomment this if the auto teardown pool is down. - # vmImage: ubuntu-22.04 - name: $(AZURE_POOL_NAME) - -parameters: -- name: test2019containerd - displayName: Test 2019 containerd - type: boolean - default: True -- name: test2022containerd - displayName: Test 2022 containerd - type: boolean - default: True -- name: test2022containerdgen2 - displayName: Test 2022 containerd Gen 2 - type: boolean - default: False -- name: test2022containerdgen2gpugrid - displayName: Test 2022 containerd Gen 2 GPU Grid - type: boolean - default: True -- name: test2022containerdgpucuda - displayName: Test 2022 containerd GPU Cuda - type: boolean - default: True -- name: test23H2 - displayName: Test 23H2 - type: boolean - default: False -- name: test23H2gen2 - displayName: Test 23H2 Gen 2 - type: boolean - default: True -- name: windowsGen2VMSize - type: string - default: Standard_D2s_v3 -- name: windowsGen1VMSize - type: string - default: Standard_D2_v2 - -stages: -- stage: test_2019_containerd - dependsOn: [] - condition: eq('${{ parameters.test2019containerd }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 2019-containerd - windowsOSSKU: Windows2019 - windowsVMSize: ${{ parameters.windowsGen1VMSize }} - windowsDistro: aks-windows-2019-containerd - storageAccount: akswinstore2019 - -- stage: test_2022_containerd - dependsOn: [] - condition: eq('${{ parameters.test2022containerd }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 2022-containerd - windowsOSSKU: Windows2022 - windowsVMSize: ${{ parameters.windowsGen1VMSize }} - windowsDistro: aks-windows-2022-containerd - storageAccount: akswinstore2022 - -- stage: test_2022_containerd_gen2 - dependsOn: [] - condition: eq('${{ parameters.test2022containerdgen2 }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 2022-containerd-gen2 - windowsOSSKU: Windows2022 - windowsVMSize: ${{ parameters.windowsGen2VMSize }} - windowsDistro: aks-windows-2022-containerd-gen2 - storageAccount: akswinstore2022gen2 - -- stage: test_2022_containerd_gen2_gpu_grid - dependsOn: [] - condition: eq('${{ parameters.test2022containerdgen2gpugrid }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 2022-containerd-gen2 - windowsOSSKU: Windows2022 - windowsVMSize: ${WINDOWS_GEN2_VM_SIZE} - windowsDistro: aks-windows-2022-containerd-gen2 - windowsGpuDriverSuffix: -grid - storageAccount: akswinstore2022gen2grid - -- stage: test_2022_containerd_gpu_cuda - dependsOn: [] - condition: eq('${{ parameters.test2022containerdgpucuda }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 2022-containerd - windowsOSSKU: Windows2022 - windowsVMSize: ${WINDOWS_GEN1_VM_SIZE} - windowsDistro: aks-windows-2022-containerd - windowsGpuDriverSuffix: -cuda - storageAccount: akswinstore2022cuda - -- stage: test_23H2 - dependsOn: [] - condition: eq('${{ parameters.test23H2 }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 23H2 - windowsOSSKU: WindowsAnnual - windowsVMSize: ${{ parameters.windowsGen1VMSize }} - windowsDistro: aks-windows-23H2 - storageAccount: akswinstore23H2 - -- stage: test_23H2_gen2 - dependsOn: [] - condition: eq('${{ parameters.test23H2gen2 }}', True) - jobs: - - template: ./templates/e2e-windows-template.yaml - parameters: - windowsImage: 23H2-gen2 - windowsOSSKU: WindowsAnnual - windowsVMSize: ${{ parameters.windowsGen2VMSize }} - windowsDistro: aks-windows-23H2-gen2 - storageAccount: akswinstore23H2gen2 diff --git a/.pipelines/e2e.yaml b/.pipelines/e2e.yaml index 1b9d99313a9..e7a027150c5 100644 --- a/.pipelines/e2e.yaml +++ b/.pipelines/e2e.yaml @@ -16,12 +16,14 @@ pr: - .pipelines/templates/e2e-template.yaml - e2e - parts/linux + - parts/windows - pkg/agent + - staging/cse/windows/ exclude: - - e2e/windows - pkg/agent/datamodel/sig_config*.go # SIG config changes - pkg/agent/datamodel/*.json # SIG version changes - pkg/agent/testdata/AKSWindows* # Windows test data - parts/linux/cloud-init/artifacts/components.json # centralized components management file + - staging/cse/windows/README jobs: - template: ./templates/e2e-template.yaml diff --git a/.pipelines/templates/e2e-windows-template.yaml b/.pipelines/templates/e2e-windows-template.yaml deleted file mode 100644 index 4e418c38d98..00000000000 --- a/.pipelines/templates/e2e-windows-template.yaml +++ /dev/null @@ -1,133 +0,0 @@ -parameters: - - name: windowsImage - type: string - default: 2019-containerd - - name: windowsOSSKU - type: string - default: Windows2019 - - name: windowsVMSize - type: string - default: Standard_D2s_v3 - - name: windowsDistro - type: string - default: aks-windows-2019-containerd - - name: windowsGpuDriverSuffix - type: string - default: - - name: storageAccount - type: string - default: storewin19 - -jobs: -- job: Setup_Test_Cluster - steps: - - bash: | - echo "Cleaning up artifacts..." - rm -rf $(Build.ArtifactStagingDirectory)/${{ parameters.windowsImage }}${{ parameters.windowsGpuDriverSuffix }}-clusterConfig - displayName: "Clean up artifacts" - - bash: | - az login --identity - az account set -s $(AZURE_E2E_SUBSCRIPTION_ID) - az extension add --name aks-preview - az --version - displayName: az login - - bash: bash .pipelines/scripts/setup_go.sh - displayName: setup go - - bash: | - export WINDOWS_E2E_IMAGE=${{ parameters.windowsImage }} - export WINDOWS_E2E_OSSKU=${{ parameters.windowsOSSKU }} - export WINDOWS_E2E_VMSIZE=${{ parameters.windowsVMSize }} - export WINDOWS_GPU_DRIVER_SUFFIX=${{ parameters.windowsGpuDriverSuffix }} - if [[ -n "${WINDOWS_PACKAGE_URL}" ]]; then - export windowsPackageURL=$WINDOWS_PACKAGE_URL - export WINDOWS_PACKAGE_VERSION=$(echo $windowsPackageURL | grep -oP '(?<=/v)\d+\.\d+\.\d+' | head -1) - if [[ -z "${KUBERNETES_VERSION}" ]]; then - echo "You must set KUBERNETES_VERSION when setting WINDOWS_PACKAGE_URL" - exit 1 - fi - if [[ "${WINDOWS_PACKAGE_VERSION}" != "${KUBERNETES_VERSION}" ]]; then - echo "Windows package version $WINDOWS_PACKAGE_VERSION does not match with kubernetes version $KUBERNETES_VERSION. Invalid test scenario." - exit 1 - fi - else - if [[ -z "${KUBERNETES_VERSION}" ]]; then - defaultMajorVersion=$(az aks get-versions -l $AZURE_BUILD_LOCATION --query "values[?isDefault==\`true\`].version" -otsv) - KUBERNETES_VERSION=$(az aks get-versions -l $AZURE_BUILD_LOCATION -o table | awk '{print $1}' | awk "/$defaultMajorVersion/ {print}" | sort -r | awk 'NR==1') - echo "Using default kubernetes version ${KUBERNETES_VERSION} for the windows package" - fi - export windowsPackageURL="https://acs-mirror.azureedge.net/kubernetes/v${KUBERNETES_VERSION}/windowszip/v${KUBERNETES_VERSION}-1int.zip" - export WINDOWS_PACKAGE_VERSION=$KUBERNETES_VERSION - fi - export K8S_VERSION=${WINDOWS_PACKAGE_VERSION//./} - declare -l WINDOWS_E2E_STORAGE_CONTAINER=${{ parameters.storageAccount }}-$K8S_VERSION - export WINDOWS_E2E_STORAGE_CONTAINER - mkdir -p $WINDOWS_E2E_IMAGE - cp -r e2e/windows/* $WINDOWS_E2E_IMAGE - go version - cd $WINDOWS_E2E_IMAGE - bash ./e2e-starter.sh && bash e2e-create-windows-nodepool.sh - displayName: Setup Test Cluster - - publish: $(System.DefaultWorkingDirectory)/${{ parameters.windowsImage }} - artifact: ${{ parameters.windowsImage }}${{ parameters.windowsGpuDriverSuffix }}-clusterConfig - condition: succeeded() - -- job: Generate_Matrix - steps: - - bash: | - stringifyJson=$(cat e2e/windows/matrix.json | jq -r tojson | sed 's/\\//g') - echo "##vso[task.setVariable variable=scenarioMatrix;isOutput=true]"$stringifyJson - name: matrix - -- job: Test - dependsOn: - - Setup_Test_Cluster - - Generate_Matrix - strategy: - matrix: $[ dependencies.Generate_Matrix.outputs['matrix.scenarioMatrix'] ] - maxParallel: 3 - steps: - - bash: | - echo "Cleaning up artifacts..." - rm -rf $(Build.ArtifactStagingDirectory)/${{ parameters.windowsImage }}${{ parameters.windowsGpuDriverSuffix }}-$(SCENARIO_NAME)-logs - displayName: "Clean up artifacts" - - download: current - artifact: ${{ parameters.windowsImage }}${{ parameters.windowsGpuDriverSuffix }}-clusterConfig - - bash: | - az login --identity - az account set -s $(AZURE_E2E_SUBSCRIPTION_ID) - displayName: az login - - bash: | - export SCENARIO_NAME - export WINDOWS_E2E_IMAGE=${{ parameters.windowsImage }} - export WINDOWS_DISTRO=${{ parameters.windowsDistro }} - export WINDOWS_GPU_DRIVER_SUFFIX=${{ parameters.windowsGpuDriverSuffix }} - if [[ "${WINDOWS_GPU_DRIVER_SUFFIX}" == "-grid" ]]; then - export WINDOWS_GPU_DRIVER_URL="https://acs-mirror.azureedge.net/aks/windows/gpudrivers/grid/537.13_grid_win10_win11_server2019_server2022_dch_64bit_international_azure_swl.exe" - export CONFIG_GPU_DRIVER_IF_NEEDED=true - elif [[ "${WINDOWS_GPU_DRIVER_SUFFIX}" == "-cuda" ]]; then - export WINDOWS_GPU_DRIVER_URL="https://acs-mirror.azureedge.net/aks/windows/gpudrivers/cuda/473.47-data-center-tesla-desktop-winserver-2019-2016-international.exe" - export CONFIG_GPU_DRIVER_IF_NEEDED=true - else - export WINDOWS_GPU_DRIVER_URL="" - export CONFIG_GPU_DRIVER_IF_NEEDED=false - fi - if [[ -n "${WINDOWS_PACKAGE_URL}" ]]; then - export windowsPackageURL=$WINDOWS_PACKAGE_URL - export WINDOWS_PACKAGE_VERSION=$(echo $windowsPackageURL | grep -oP '(?<=/v)\d+\.\d+\.\d+' | head -1) - else - if [[ -z "${KUBERNETES_VERSION}" ]]; then - defaultMajorVersion=$(az aks get-versions -l $AZURE_BUILD_LOCATION --query "values[?isDefault==\`true\`].version" -otsv) - KUBERNETES_VERSION=$(az aks get-versions -l $AZURE_BUILD_LOCATION -o table | awk '{print $1}' | awk "/$defaultMajorVersion/ {print}" | sort -r | awk 'NR==1') - echo "Using default kubernetes version ${KUBERNETES_VERSION} for the windows package" - fi - export windowsPackageURL="https://acs-mirror.azureedge.net/kubernetes/v${KUBERNETES_VERSION}/windowszip/v${KUBERNETES_VERSION}-1int.zip" - export WINDOWS_PACKAGE_VERSION=$KUBERNETES_VERSION - fi - export K8S_VERSION=${WINDOWS_PACKAGE_VERSION//./} - mkdir -p $WINDOWS_E2E_IMAGE - cp -a $(Pipeline.Workspace)/${{ parameters.windowsImage }}${{ parameters.windowsGpuDriverSuffix }}-clusterConfig/* $WINDOWS_E2E_IMAGE - cd $WINDOWS_E2E_IMAGE - bash e2e-scenario.sh - - publish: $(System.DefaultWorkingDirectory)/${{ parameters.windowsImage }}/$(SCENARIO_NAME)-logs - artifact: ${{ parameters.windowsImage }}${{ parameters.windowsGpuDriverSuffix }}-$(SCENARIO_NAME)-logs - condition: always() \ No newline at end of file