From 7d9de1e02b96a1aff73b0cec73c6ef735ab4f0e3 Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Fri, 17 Nov 2023 11:59:10 -0800 Subject: [PATCH 1/6] test: merge-queue test --- .github/workflows/golangci.yaml | 5 +- .pipelines/pipeline.yaml | 1070 ++++++++++++++++--------------- .pipelines/test-file.txt | 1 + 3 files changed, 574 insertions(+), 502 deletions(-) create mode 100644 .pipelines/test-file.txt diff --git a/.github/workflows/golangci.yaml b/.github/workflows/golangci.yaml index 37ce503c8d..7f5d97aebf 100644 --- a/.github/workflows/golangci.yaml +++ b/.github/workflows/golangci.yaml @@ -7,6 +7,9 @@ on: - reopened - synchronize - ready_for_review + merge_group: + types: + - checks_requested jobs: golangci: strategy: @@ -19,7 +22,7 @@ jobs: steps: - uses: actions/setup-go@v5 with: - go-version: ${{ matrix.go-version }} + go-version: ${{ matrix.go-version }} - uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index 526a529e05..01c11b5b36 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -1,35 +1,24 @@ pr: branches: include: + - merge-queue-test - master - release/* - paths: - exclude: - - ".devcontainer" - - ".hooks" - - ".vscode" - - ".github" - - docs - trigger: - paths: - exclude: - - docs - - "zapai/*" - - "azure-ipam/*" - - "dropgz/*" + branches: + include: + - gh-readonly-queue/merge-queue-test/* tags: include: - "*" + stages: - stage: setup displayName: ACN jobs: - job: env displayName: Setup - pool: - name: "$(BUILD_POOL_NAME_DEFAULT)" steps: - script: | # To use the variables below, you must make the respective stage's dependsOn have - setup or it will not retain context of this stage @@ -45,512 +34,591 @@ stages: go env which go echo $PATH + echo "------" + echo $(Build.QueuedBy) + echo $(Build.Reason) # manual, PR, IndividualCI + echo $(Build.SourceBranch) + name: "EnvironmentalVariables" displayName: "Set environmental variables" condition: always() + - ${{ if contains(variables['Build.SourceBranch'], 'refs/pull') }}: + - stage: test2 + displayName: Test ACN Short + dependsOn: + - setup + jobs: + - job: test2 + displayName: Run Tests | Short + variables: + STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + steps: + - script: | + echo "lets sleep for a while" + echo "We will run just unit tests in this block" + sleep 60s + name: "sleep" + displayName: "Sleep 60s" + - ${{ else }}: + - stage: test + displayName: Test ACN Long + dependsOn: + - setup + jobs: + - job: test + displayName: Run Tests | Long + variables: + STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + steps: + - script: | + echo "lets sleep for a while" + echo "This block should be used for all other E2E, Tags/Releases, Manual runs, ect" + sleep 60s + name: "sleep" + displayName: "Sleep 60s" + # - stage: test_windows + # displayName: Test ACN Windows + # dependsOn: + # - setup + # jobs: + # - job: test + # displayName: Run Tests + # variables: + # STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + # pool: + # name: "$(BUILD_POOL_NAME_DEFAULT_WINDOWS_ALT)" + # steps: + # - script: | + # cd npm/ + # go test ./... + # retryCountOnTaskFailure: 3 + # name: "TestWindows" + # displayName: "Run Windows Tests" - - stage: test - displayName: Test ACN - dependsOn: - - setup - jobs: - - job: test - displayName: Run Tests - variables: - STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] - pool: - name: "$(BUILD_POOL_NAME_DEFAULT)" - steps: - - script: | - make tools - # run test, echo exit status code to fd 3, pipe output from test to tee, which splits output to stdout and go-junit-report (which converts test output to report.xml), stdout from tee is redirected to fd 4. Take output written to fd 3 (which is the exit code of test), redirect to stdout, pipe to read from stdout then exit with that status code. Read all output from fd 4 (output from tee) and write to top stdout - { { { { - sudo -E env "PATH=$PATH" make test-all; - echo $? >&3; - } | tee >(build/tools/bin/go-junit-report > report.xml) >&4; - } 3>&1; - } | { read xs; exit $xs; } - } 4>&1 - retryCountOnTaskFailure: 3 - name: "Test" - displayName: "Run Tests" + # - stage: binaries + # displayName: Build Binaries + # dependsOn: + # - setup + # - test + # jobs: + # - job: build + # displayName: Build Binaries + # variables: + # STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + # pool: + # name: "$(BUILD_POOL_NAME_DEFAULT)" + # steps: + # - script: | + # make all-binaries-platforms + # name: "BuildAllPlatformBinaries" + # displayName: "Build all platform binaries" - - stage: test_windows - displayName: Test ACN Windows - dependsOn: - - setup - jobs: - - job: test - displayName: Run Tests - variables: - STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] - pool: - name: "$(BUILD_POOL_NAME_DEFAULT_WINDOWS_ALT)" - steps: - - script: | - cd npm/ - go test ./... - retryCountOnTaskFailure: 3 - name: "TestWindows" - displayName: "Run Windows Tests" + # - script: | + # mkdir -p ./output/bins + # cd ./output + # find . -name '*.tgz' -print -exec mv -t ./bins/ {} + + # find . -name '*.zip' -print -exec mv -t ./bins/ {} + + # shopt -s extglob + # rm -rf !("bins") + # name: "PrepareArtifacts" + # displayName: "Prepare Artifacts" - - stage: binaries - displayName: Build Binaries - dependsOn: - - setup - - test - jobs: - - job: build - displayName: Build Binaries - variables: - STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] - pool: - name: "$(BUILD_POOL_NAME_DEFAULT)" - steps: - - script: | - make all-binaries-platforms - name: "BuildAllPlatformBinaries" - displayName: "Build all platform binaries" + # - task: CopyFiles@2 + # inputs: + # sourceFolder: "output" + # targetFolder: $(Build.ArtifactStagingDirectory) + # condition: succeeded() - - script: | - mkdir -p ./output/bins - cd ./output - find . -name '*.tgz' -print -exec mv -t ./bins/ {} + - find . -name '*.zip' -print -exec mv -t ./bins/ {} + - shopt -s extglob - rm -rf !("bins") - name: "PrepareArtifacts" - displayName: "Prepare Artifacts" + # - task: PublishBuildArtifacts@1 + # inputs: + # artifactName: "output" + # pathtoPublish: "$(Build.ArtifactStagingDirectory)" + # condition: succeeded() - - task: CopyFiles@2 - inputs: - sourceFolder: "output" - targetFolder: $(Build.ArtifactStagingDirectory) - condition: succeeded() + # - task: AzureCLI@1 + # inputs: + # azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) + # scriptLocation: "inlineScript" + # inlineScript: | + # echo Creating storage container with name acn-$(STORAGE_ID) and account name $(STORAGE_ACCOUNT_NAME) + # az storage container create -n acn-$(STORAGE_ID) --account-name $(STORAGE_ACCOUNT_NAME) --public-access container + # az storage blob upload-batch -d acn-$(STORAGE_ID) -s ./output/bins/ --account-name $(STORAGE_ACCOUNT_NAME) + # displayName: Create artifact storage container + # condition: succeeded() - - task: PublishBuildArtifacts@1 - inputs: - artifactName: "output" - pathtoPublish: "$(Build.ArtifactStagingDirectory)" - condition: succeeded() + # - stage: containerize + # displayName: Build Images + # dependsOn: + # - setup + # - test + # jobs: + # - job: containerize_amd64 + # displayName: Build Images + # pool: + # name: "$(BUILD_POOL_NAME_LINUX_AMD64)" + # strategy: + # matrix: + # azure_ipam_linux_amd64: + # arch: amd64 + # name: azure-ipam + # os: linux + # azure_ipam_windows2019_amd64: + # arch: amd64 + # name: azure-ipam + # os: windows + # os_version: ltsc2019 + # azure_ipam_windows2022_amd64: + # arch: amd64 + # name: azure-ipam + # os: windows + # os_version: ltsc2022 + # cni_linux_amd64: + # arch: amd64 + # name: cni + # os: linux + # cni_windows2019_amd64: + # arch: amd64 + # name: cni + # os: windows + # os_version: ltsc2019 + # cni_windows2022_amd64: + # arch: amd64 + # name: cni + # os: windows + # os_version: ltsc2022 + # cni_dropgz_linux_amd64: + # arch: amd64 + # name: cni-dropgz + # os: linux + # cni_dropgz_test_linux_amd64: + # arch: amd64 + # name: cni-dropgz-test + # os: linux + # cni_dropgz_windows2019_amd64: + # arch: amd64 + # name: cni-dropgz + # os: windows + # os_version: ltsc2019 + # cni_dropgz_windows2022_amd64: + # arch: amd64 + # name: cni-dropgz + # os: windows + # os_version: ltsc2022 + # cni_dropgz_test_windows2019_amd64: + # arch: amd64 + # name: cni-dropgz-test + # os: windows + # os_version: ltsc2019 + # cni_dropgz_test_windows2022_amd64: + # arch: amd64 + # name: cni-dropgz-test + # os: windows + # os_version: ltsc2022 + # cns_linux_amd64: + # arch: amd64 + # name: cns + # os: linux + # cns_windows2019_amd64: + # arch: amd64 + # name: cns + # os: windows + # os_version: ltsc2019 + # cns_windows2022_amd64: + # arch: amd64 + # name: cns + # os: windows + # os_version: ltsc2022 + # npm_linux_amd64: + # arch: amd64 + # name: npm + # os: linux + # npm_windows2022_amd64: + # arch: amd64 + # name: npm + # os: windows + # os_version: ltsc2022 + # steps: + # - template: containers/container-template.yaml + # parameters: + # arch: $(arch) + # name: $(name) + # os: $(os) + # os_version: $(os_version) + # - job: containerize_linux_arm64 + # displayName: Build Images + # variables: + # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + # pool: + # name: "$(BUILD_POOL_NAME_LINUX_ARM64)" + # strategy: + # matrix: + # azure_ipam_linux_arm64: + # arch: arm64 + # name: azure-ipam + # os: linux + # cni_linux_arm64: + # arch: arm64 + # name: cni + # os: linux + # cni_dropgz_linux_arm64: + # arch: arm64 + # name: cni-dropgz + # os: linux + # cni_dropgz_test_linux_arm64: + # arch: arm64 + # name: cni-dropgz-test + # os: linux + # cns_linux_arm64: + # arch: arm64 + # name: cns + # os: linux + # npm_linux_arm64: + # arch: arm64 + # name: npm + # os: linux + # steps: + # - template: containers/container-template.yaml + # parameters: + # arch: $(arch) + # name: $(name) + # os: $(os) + # - job: check_tag + # displayName: Check Tag + # pool: + # name: $(BUILD_POOL_NAME_DEFAULT) + # steps: + # - script: | + # echo "##vso[task.setvariable variable=currentTagBuild;isOutput=true]$(make version)" + # name: "CurrentTagBuild" + # displayName: "Set current tag variable" + # condition: always() - - task: AzureCLI@1 - inputs: - azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) - scriptLocation: "inlineScript" - inlineScript: | - echo Creating storage container with name acn-$(STORAGE_ID) and account name $(STORAGE_ACCOUNT_NAME) - az storage container create -n acn-$(STORAGE_ID) --account-name $(STORAGE_ACCOUNT_NAME) --public-access container - az storage blob upload-batch -d acn-$(STORAGE_ID) -s ./output/bins/ --account-name $(STORAGE_ACCOUNT_NAME) - displayName: Create artifact storage container - condition: succeeded() + # - stage: validate1 + # displayName: Validate Tags + # dependsOn: + # - setup + # - containerize + # variables: + # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + # CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] + # condition: ne(variables.TAG, variables.CURRENT_VERSION) + # jobs: + # - job: timeout_and_cancel + # displayName: Cancel Run + # pool: + # name: $(BUILD_POOL_NAME_DEFAULT) + # steps: + # - script: | + # echo $TAG + # echo $CURRENT_VERSION + # echo "Checking if branch up to date with master" - - stage: containerize - displayName: Build Images - dependsOn: - - setup - - test - jobs: - - job: containerize_amd64 - displayName: Build Images - pool: - name: "$(BUILD_POOL_NAME_LINUX_AMD64)" - strategy: - matrix: - azure_ipam_linux_amd64: - arch: amd64 - name: azure-ipam - os: linux - azure_ipam_windows2019_amd64: - arch: amd64 - name: azure-ipam - os: windows - os_version: ltsc2019 - azure_ipam_windows2022_amd64: - arch: amd64 - name: azure-ipam - os: windows - os_version: ltsc2022 - cni_linux_amd64: - arch: amd64 - name: cni - os: linux - cni_windows2019_amd64: - arch: amd64 - name: cni - os: windows - os_version: ltsc2019 - cni_windows2022_amd64: - arch: amd64 - name: cni - os: windows - os_version: ltsc2022 - cni_dropgz_linux_amd64: - arch: amd64 - name: cni-dropgz - os: linux - cni_dropgz_windows2019_amd64: - arch: amd64 - name: cni-dropgz - os: windows - os_version: ltsc2019 - cni_dropgz_windows2022_amd64: - arch: amd64 - name: cni-dropgz - os: windows - os_version: ltsc2022 - cns_linux_amd64: - arch: amd64 - name: cns - os: linux - cns_windows2019_amd64: - arch: amd64 - name: cns - os: windows - os_version: ltsc2019 - cns_windows2022_amd64: - arch: amd64 - name: cns - os: windows - os_version: ltsc2022 - npm_linux_amd64: - arch: amd64 - name: npm - os: linux - npm_windows2022_amd64: - arch: amd64 - name: npm - os: windows - os_version: ltsc2022 - steps: - - template: containers/container-template.yaml - parameters: - arch: $(arch) - name: $(name) - os: $(os) - os_version: $(os_version) - - job: containerize_linux_arm64 - displayName: Build Images - variables: - TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - pool: - name: "$(BUILD_POOL_NAME_LINUX_ARM64)" - strategy: - matrix: - azure_ipam_linux_arm64: - arch: arm64 - name: azure-ipam - os: linux - cni_linux_arm64: - arch: arm64 - name: cni - os: linux - cni_dropgz_linux_arm64: - arch: arm64 - name: cni-dropgz - os: linux - cns_linux_arm64: - arch: arm64 - name: cns - os: linux - npm_linux_arm64: - arch: arm64 - name: npm - os: linux - steps: - - template: containers/container-template.yaml - parameters: - arch: $(arch) - name: $(name) - os: $(os) - - job: check_tag - displayName: Check Tag - pool: - name: $(BUILD_POOL_NAME_DEFAULT) - steps: - - script: | - echo "##vso[task.setvariable variable=currentTagBuild;isOutput=true]$(make version)" - name: "CurrentTagBuild" - displayName: "Set current tag variable" - condition: always() + # - stage: publish + # displayName: Publish Multiarch Manifests + # dependsOn: + # - containerize + # variables: + # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + # CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] + # Packaging.EnableSBOMSigning: false + # condition: and(succeeded(), eq(variables.TAG, variables.CURRENT_VERSION)) + # jobs: + # - job: manifest + # displayName: Compile Manifests + # pool: + # name: "$(BUILD_POOL_NAME_DEFAULT)" + # strategy: + # matrix: + # azure_ipam: + # name: azure-ipam + # os_versions: ltsc2019 ltsc2022 + # platforms: linux/amd64 linux/arm64 windows/amd64 + # cni: + # name: cni + # os_versions: ltsc2019 ltsc2022 + # platforms: linux/amd64 linux/arm64 windows/amd64 + # cni_dropgz: + # name: cni-dropgz + # os_versions: ltsc2019 ltsc2022 + # platforms: linux/amd64 linux/arm64 windows/amd64 + # cni_dropgz_test: + # name: cni-dropgz-test + # os_versions: ltsc2019 ltsc2022 + # platforms: linux/amd64 linux/arm64 windows/amd64 + # cns: + # name: cns + # os_versions: ltsc2019 ltsc2022 + # platforms: linux/amd64 linux/arm64 windows/amd64 + # npm: + # name: npm + # os_versions: ltsc2022 + # platforms: linux/amd64 linux/arm64 windows/amd64 + # steps: + # - template: containers/manifest-template.yaml + # parameters: + # name: $(name) + # os_versions: $(os_versions) + # platforms: $(platforms) + # tag: $(TAG) + # - job: check_tag + # displayName: Check Tag + # pool: + # name: $(BUILD_POOL_NAME_DEFAULT) + # steps: + # - script: | + # echo "##vso[task.setvariable variable=currentTagManifests;isOutput=true]$(make version)" + # name: "CurrentTagManifests" + # displayName: "Set current tag variable" + # condition: always() - - stage: validate1 - displayName: Validate Tags - dependsOn: - - setup - - containerize - variables: - TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] - condition: ne(variables.TAG, variables.CURRENT_VERSION) - jobs: - - job: timeout_and_cancel - displayName: Cancel Run - pool: - name: $(BUILD_POOL_NAME_DEFAULT) - steps: - - script: | - echo $TAG - echo $CURRENT_VERSION - echo "Checking if branch up to date with master" + # # Cilium Podsubnet E2E tests + # - template: singletenancy/cilium/cilium-e2e-job-template.yaml + # parameters: + # name: "cilium_e2e" + # displayName: Cilium + # testDropgz: "" + # clusterType: swift-byocni-nokubeproxy-up + # clusterName: "ciliume2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - - stage: publish - displayName: Publish Multiarch Manifests - dependsOn: - - containerize - variables: - TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] - Packaging.EnableSBOMSigning: false - condition: and(succeeded(), eq(variables.TAG, variables.CURRENT_VERSION)) - jobs: - - job: manifest - displayName: Compile Manifests - pool: - name: "$(BUILD_POOL_NAME_DEFAULT)" - strategy: - matrix: - azure_ipam: - name: azure-ipam - os_versions: ltsc2019 ltsc2022 - platforms: linux/amd64 linux/arm64 windows/amd64 - cni: - name: cni - os_versions: ltsc2019 ltsc2022 - platforms: linux/amd64 linux/arm64 windows/amd64 - cni_dropgz: - name: cni-dropgz - os_versions: ltsc2019 ltsc2022 - platforms: linux/amd64 linux/arm64 windows/amd64 - cns: - name: cns - os_versions: ltsc2019 ltsc2022 - platforms: linux/amd64 linux/arm64 windows/amd64 - npm: - name: npm - os_versions: ltsc2022 - platforms: linux/amd64 linux/arm64 windows/amd64 - steps: - - template: containers/manifest-template.yaml - parameters: - name: $(name) - os_versions: $(os_versions) - platforms: $(platforms) - tag: $(TAG) - - job: check_tag - displayName: Check Tag - pool: - name: $(BUILD_POOL_NAME_DEFAULT) - steps: - - script: | - echo "##vso[task.setvariable variable=currentTagManifests;isOutput=true]$(make version)" - name: "CurrentTagManifests" - displayName: "Set current tag variable" - condition: always() + # - template: singletenancy/cilium/cilium-e2e-job-template.yaml + # parameters: + # name: "cilium_podsubnet_cni_e2e" + # displayName: CNI - Cilium Podsubnet + # testDropgz: true + # clusterType: swift-byocni-nokubeproxy-up + # clusterName: "cilpodcnie2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - # Cilium Podsubnet E2E tests - - template: singletenancy/cilium/cilium-e2e-job-template.yaml - parameters: - name: "cilium_e2e" - displayName: Cilium - clusterType: swift-byocni-nokubeproxy-up - clusterName: "ciliume2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "test" + # # Cilium Overlay E2E tests + # - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml + # parameters: + # name: "cilium_overlay_e2e" + # displayName: Cilium on AKS Overlay + # testDropgz: "" + # clusterType: overlay-byocni-nokubeproxy-up + # clusterName: "cilovere2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - # Cilium Overlay E2E tests - - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml - parameters: - name: "cilium_overlay_e2e" - displayName: Cilium on AKS Overlay - clusterType: overlay-byocni-nokubeproxy-up - clusterName: "cilovere2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "test" + # - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml + # parameters: + # name: "cilium_overlay_cni_e2e" + # displayName: CNI - Cilium on AKS Overlay + # testDropgz: true + # clusterType: overlay-byocni-nokubeproxy-up + # clusterName: "cilovercnie2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - # Azure Overlay E2E tests - - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml - parameters: - name: "azure_overlay_e2e" - displayName: Azure Overlay - os: linux - clusterType: overlay-byocni-up - clusterName: "azovere2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "test" + # # Azure Overlay E2E tests + # - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml + # parameters: + # name: "azure_overlay_e2e" + # displayName: Azure Overlay + # os: linux + # testDropgz: "" + # clusterType: overlay-byocni-up + # clusterName: "azovere2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - # AKS Swift E2E tests - - template: singletenancy/aks-swift/e2e-job-template.yaml - parameters: - name: "aks_swift_e2e" - displayName: AKS Swift Ubuntu - clusterType: swift-byocni-up - clusterName: "swifte2e" - vmSize: Standard_B2s - k8sVersion: "" - dependsOn: "test" + # - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml + # parameters: + # name: "azure_overlay_cni_e2e" + # displayName: CNI - Azure Overlay + # os: linux + # testDropgz: true + # clusterType: overlay-byocni-up + # clusterName: "azovercnie2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - # AKS Swift Vnet Scale E2E tests - - template: singletenancy/aks-swift/e2e-job-template.yaml - parameters: - name: "aks_swift_vnetscale_e2e" - displayName: AKS Swift Vnet Scale Ubuntu - clusterType: vnetscale-swift-byocni-up - clusterName: "vscaleswifte2e" - vmSize: Standard_B2s - k8sVersion: "1.28" - dependsOn: "test" + # # AKS Swift E2E tests + # - template: singletenancy/aks-swift/e2e-job-template.yaml + # parameters: + # name: "aks_swift_e2e" + # displayName: AKS Swift Ubuntu + # testDropgz: "" + # clusterType: swift-byocni-up + # clusterName: "swifte2e" + # vmSize: Standard_B2s + # k8sVersion: "" + # dependsOn: "containerize" - # CNIv1 E2E tests - - template: singletenancy/aks/e2e-job-template.yaml - parameters: - name: "aks_ubuntu_22_linux_e2e" - displayName: AKS Ubuntu 22 - arch: "amd64" - os: "linux" - clusterType: linux-cniv1-up - clusterName: "ubuntu22e2e" - vmSize: Standard_B2s - k8sVersion: 1.25 - scaleup: 100 - dependsOn: "test" + # - template: singletenancy/aks-swift/e2e-job-template.yaml + # parameters: + # name: "aks_swift_cni_e2e" + # displayName: CNI - AKS Swift + # testDropgz: true + # clusterType: swift-byocni-up + # clusterName: "swiftcnie2e" + # vmSize: Standard_B2ms + # k8sVersion: "" + # dependsOn: "containerize" - - template: singletenancy/aks/e2e-job-template.yaml - parameters: - name: "aks_windows_22_e2e" - displayName: AKS Windows 2022 - arch: amd64 - os: windows - clusterType: windows-cniv1-up - clusterName: "win22e2e" - vmSize: Standard_B2ms - os_version: "ltsc2022" - scaleup: 50 - dependsOn: "test" + # # CNIv1 E2E tests + # - template: singletenancy/aks/e2e-job-template.yaml + # parameters: + # name: "aks_ubuntu_22_linux_e2e" + # displayName: AKS Ubuntu 22 + # arch: "amd64" + # os: "linux" + # clusterType: linux-cniv1-up + # clusterName: "ubuntu22e2e" + # vmSize: Standard_B2s + # k8sVersion: 1.25 + # scaleup: 100 + # dependsOn: "containerize" - # CNI dual stack overlay E2E tests - - template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml - parameters: - name: "dualstackoverlay_e2e" - displayName: AKS DualStack Overlay - os: linux - clusterType: dualstack-overlay-byocni-up - clusterName: "dsovere2e" - vmSize: Standard_B2ms - dependsOn: "test" + # - template: singletenancy/aks/e2e-job-template.yaml + # parameters: + # name: "aks_windows_22_e2e" + # displayName: AKS Windows 2022 + # arch: amd64 + # os: windows + # clusterType: windows-cniv1-up + # clusterName: "win22e2e" + # vmSize: Standard_B2ms + # os_version: "ltsc2022" + # scaleup: 50 + # dependsOn: "containerize" - - stage: delete - displayName: Delete Clusters - condition: always() - dependsOn: - - setup - - azure_overlay_e2e - - aks_swift_e2e - - cilium_e2e - - cilium_overlay_e2e - - aks_ubuntu_22_linux_e2e - - aks_windows_22_e2e - - dualstackoverlay_e2e - variables: - commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] - jobs: - - job: delete - displayName: Delete Cluster - pool: - name: "$(BUILD_POOL_NAME_DEFAULT)" - strategy: - matrix: - cilium_e2e: - name: cilium_e2e - clusterName: "ciliume2e" - cilium_overlay_e2e: - name: cilium_overlay_e2e - clusterName: "cilovere2e" - azure_overlay_e2e: - name: azure_overlay_e2e - clusterName: "azovere2e" - aks_swift_e2e: - name: aks_swift_e2e - clusterName: "swifte2e" - aks_swift_vnetscale_e2e: - name: aks_swift_vnetscale_e2e - clusterName: "vscaleswifte2e" - azure_overlay_cni_e2e: - name: "azure_overlay_cni_e2e" - clusterName: "azovercnie2e" - cilium_podsubnet_cni_e2e: - name: cilium_podsubnet_cni_e2e - clusterName: "cilpodcnie2e" - cilium_overlay_cni_e2e: - name: cilium_overlay_cni_e2e - clusterName: "cilovercnie2e" - aks_swift_cni_e2e: - name: aks_swift_cni_e2e - clusterName: "swiftcnie2e" - aks_ubuntu_22_linux_e2e: - name: aks_ubuntu_22_linux_e2e - clusterName: "ubuntu22e2e" - aks_windows_22_e2e: - name: aks_windows_22_e2e - clusterName: "win22e2e" - dualstackoverlay_e2e: - name: dualstackoverlay_e2e - clusterName: "dsovere2e" - steps: - - template: templates/delete-cluster.yaml - parameters: - name: $(name) - clusterName: $(clusterName)-$(commitID) - region: $(REGION_AKS_CLUSTER_TEST) + # # CNI dual stack overlay E2E tests + # - template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml + # parameters: + # name: "dualstackoverlay_e2e" + # displayName: AKS DualStack Overlay + # os: linux + # clusterType: dualstack-overlay-byocni-up + # clusterName: "dsovere2e" + # vmSize: Standard_B2ms + # dependsOn: "containerize" + # testDropgz: true - - stage: validate2 - displayName: Validate Tags - dependsOn: - - setup - - publish - variables: - TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - CURRENT_VERSION: $[ stagedependencies.publish.check_tag.outputs['CurrentTagManifests.currentTagManifests'] ] - condition: ne(variables.TAG, variables.CURRENT_VERSION) - jobs: - - job: timeout_and_cancel - displayName: Cancel Run - pool: - name: $(BUILD_POOL_NAME_DEFAULT) - steps: - - script: | - echo $TAG - echo $CURRENT_VERSION - echo "Checking if branch is up to date with master" + # - stage: delete + # displayName: Delete Clusters + # condition: always() + # dependsOn: + # - setup + # - "azure_overlay_e2e" + # - "azure_overlay_cni_e2e" + # - "aks_swift_e2e" + # - "aks_swift_cni_e2e" + # - "cilium_e2e" + # - "cilium_podsubnet_cni_e2e" + # - "cilium_overlay_e2e" + # - "cilium_overlay_cni_e2e" + # - "aks_ubuntu_22_linux_e2e" + # - "aks_windows_22_e2e" + # - "dualstackoverlay_e2e" + # variables: + # commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] + # jobs: + # - job: delete + # displayName: Delete Cluster + # pool: + # name: "$(BUILD_POOL_NAME_DEFAULT)" + # strategy: + # matrix: + # cilium_e2e: + # name: cilium_e2e + # clusterName: "ciliume2e" + # cilium_overlay_e2e: + # name: cilium_overlay_e2e + # clusterName: "cilovere2e" + # azure_overlay_e2e: + # name: azure_overlay_e2e + # clusterName: "azovere2e" + # aks_swift_e2e: + # name: aks_swift_e2e + # clusterName: "swifte2e" + # azure_overlay_cni_e2e: + # name: "azure_overlay_cni_e2e" + # clusterName: "azovercnie2e" + # cilium_podsubnet_cni_e2e: + # name: cilium_podsubnet_cni_e2e + # clusterName: "cilpodcnie2e" + # cilium_overlay_cni_e2e: + # name: cilium_overlay_cni_e2e + # clusterName: "cilovercnie2e" + # aks_swift_cni_e2e: + # name: aks_swift_cni_e2e + # clusterName: "swiftcnie2e" + # aks_ubuntu_22_linux_e2e: + # name: aks_ubuntu_22_linux_e2e + # clusterName: "ubuntu22e2e" + # aks_windows_22_e2e: + # name: aks_windows_22_e2e + # clusterName: "win22e2e" + # dualstackoverlay_e2e: + # name: dualstackoverlay_e2e + # clusterName: "dsovere2e" + # steps: + # - template: templates/delete-cluster.yaml + # parameters: + # name: $(name) + # clusterName: $(clusterName)-$(commitID) + # region: $(REGION_AKS_CLUSTER_TEST) - - stage: cleanup - displayName: Cleanup - dependsOn: - - azure_overlay_e2e - - aks_swift_e2e - - cilium_e2e - - cilium_overlay_e2e - - aks_ubuntu_22_linux_e2e - - aks_windows_22_e2e - - dualstackoverlay_e2e - jobs: - - job: delete_remote_artifacts - displayName: Delete remote artifacts - pool: - name: $(BUILD_POOL_NAME_DEFAULT) - demands: agent.os -equals Linux - steps: - - checkout: none - - task: AzureCLI@1 - inputs: - azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) - scriptLocation: "inlineScript" - inlineScript: | - BUILD_NUMBER=$(Build.BuildNumber) - BUILD_NUMBER=${BUILD_NUMBER//./-} - echo Deleting storage container with name acn-$BUILD_NUMBER and account name $(STORAGE_ACCOUNT_NAME) - az storage container delete -n acn-$BUILD_NUMBER --account-name $(STORAGE_ACCOUNT_NAME) - displayName: Cleanup remote Azure storage container + # - stage: validate2 + # displayName: Validate Tags + # dependsOn: + # - setup + # - publish + # variables: + # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + # CURRENT_VERSION: $[ stagedependencies.publish.check_tag.outputs['CurrentTagManifests.currentTagManifests'] ] + # condition: ne(variables.TAG, variables.CURRENT_VERSION) + # jobs: + # - job: timeout_and_cancel + # displayName: Cancel Run + # pool: + # name: $(BUILD_POOL_NAME_DEFAULT) + # steps: + # - script: | + # echo $TAG + # echo $CURRENT_VERSION + # echo "Checking if branch is up to date with master" + + # - stage: cleanup + # displayName: Cleanup + # dependsOn: + # - "azure_overlay_e2e" + # - "azure_overlay_cni_e2e" + # - "aks_swift_e2e" + # - "aks_swift_cni_e2e" + # - "cilium_e2e" + # - "cilium_podsubnet_cni_e2e" + # - "cilium_overlay_e2e" + # - "cilium_overlay_cni_e2e" + # - "aks_ubuntu_22_linux_e2e" + # - "aks_windows_22_e2e" + # - "dualstackoverlay_e2e" + + # jobs: + # - job: delete_remote_artifacts + # displayName: Delete remote artifacts + # pool: + # name: $(BUILD_POOL_NAME_DEFAULT) + # demands: agent.os -equals Linux + # steps: + # - checkout: none + # - task: AzureCLI@1 + # inputs: + # azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) + # scriptLocation: "inlineScript" + # inlineScript: | + # BUILD_NUMBER=$(Build.BuildNumber) + # BUILD_NUMBER=${BUILD_NUMBER//./-} + # echo Deleting storage container with name acn-$BUILD_NUMBER and account name $(STORAGE_ACCOUNT_NAME) + # az storage container delete -n acn-$BUILD_NUMBER --account-name $(STORAGE_ACCOUNT_NAME) + # displayName: Cleanup remote Azure storage container diff --git a/.pipelines/test-file.txt b/.pipelines/test-file.txt new file mode 100644 index 0000000000..af14a93c85 --- /dev/null +++ b/.pipelines/test-file.txt @@ -0,0 +1 @@ +Random information that will test the merge-queue From 683d08c29fc42e93fed1ecca711205cdf1108d58 Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Tue, 19 Dec 2023 14:18:05 -0800 Subject: [PATCH 2/6] ci: add merge queue --- .pipelines/pipeline.yaml | 1094 +++++++++++++++++++------------------- .pipelines/test-file.txt | 1 - 2 files changed, 551 insertions(+), 544 deletions(-) delete mode 100644 .pipelines/test-file.txt diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index 01c11b5b36..af1845e5e9 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -1,24 +1,38 @@ pr: branches: include: - - merge-queue-test - master - release/* + paths: + exclude: + - ".devcontainer" + - ".hooks" + - ".vscode" + - ".github" + - docs + trigger: branches: include: - gh-readonly-queue/merge-queue-test/* + paths: + exclude: + - docs + - "zapai/*" + - "azure-ipam/*" + - "dropgz/*" tags: include: - "*" - stages: - stage: setup displayName: ACN jobs: - job: env displayName: Setup + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" steps: - script: | # To use the variables below, you must make the respective stage's dependsOn have - setup or it will not retain context of this stage @@ -43,582 +57,576 @@ stages: displayName: "Set environmental variables" condition: always() - ${{ if contains(variables['Build.SourceBranch'], 'refs/pull') }}: - - stage: test2 - displayName: Test ACN Short + - stage: test + displayName: Test ACN dependsOn: - setup jobs: - - job: test2 - displayName: Run Tests | Short + - job: test + displayName: Run Tests variables: STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" steps: - script: | - echo "lets sleep for a while" - echo "We will run just unit tests in this block" - sleep 60s - name: "sleep" - displayName: "Sleep 60s" - - ${{ else }}: - - stage: test - displayName: Test ACN Long + make tools + # run test, echo exit status code to fd 3, pipe output from test to tee, which splits output to stdout and go-junit-report (which converts test output to report.xml), stdout from tee is redirected to fd 4. Take output written to fd 3 (which is the exit code of test), redirect to stdout, pipe to read from stdout then exit with that status code. Read all output from fd 4 (output from tee) and write to top stdout + { { { { + sudo -E env "PATH=$PATH" make test-all; + echo $? >&3; + } | tee >(build/tools/bin/go-junit-report > report.xml) >&4; + } 3>&1; + } | { read xs; exit $xs; } + } 4>&1 + retryCountOnTaskFailure: 3 + name: "Test" + displayName: "Run Tests" + + - stage: test_windows + displayName: Test ACN Windows dependsOn: - setup jobs: - job: test - displayName: Run Tests | Long + displayName: Run Tests variables: STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + pool: + name: "$(BUILD_POOL_NAME_DEFAULT_WINDOWS_ALT)" steps: - script: | - echo "lets sleep for a while" - echo "This block should be used for all other E2E, Tags/Releases, Manual runs, ect" - sleep 60s - name: "sleep" - displayName: "Sleep 60s" - # - stage: test_windows - # displayName: Test ACN Windows - # dependsOn: - # - setup - # jobs: - # - job: test - # displayName: Run Tests - # variables: - # STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] - # pool: - # name: "$(BUILD_POOL_NAME_DEFAULT_WINDOWS_ALT)" - # steps: - # - script: | - # cd npm/ - # go test ./... - # retryCountOnTaskFailure: 3 - # name: "TestWindows" - # displayName: "Run Windows Tests" + cd npm/ + go test ./... + retryCountOnTaskFailure: 3 + name: "TestWindows" + displayName: "Run Windows Tests" - # - stage: binaries - # displayName: Build Binaries - # dependsOn: - # - setup - # - test - # jobs: - # - job: build - # displayName: Build Binaries - # variables: - # STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] - # pool: - # name: "$(BUILD_POOL_NAME_DEFAULT)" - # steps: - # - script: | - # make all-binaries-platforms - # name: "BuildAllPlatformBinaries" - # displayName: "Build all platform binaries" + - ${{ else }}: + - stage: binaries + displayName: Build Binaries + dependsOn: + - setup + - test + jobs: + - job: build + displayName: Build Binaries + variables: + STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" + steps: + - script: | + make all-binaries-platforms + name: "BuildAllPlatformBinaries" + displayName: "Build all platform binaries" - # - script: | - # mkdir -p ./output/bins - # cd ./output - # find . -name '*.tgz' -print -exec mv -t ./bins/ {} + - # find . -name '*.zip' -print -exec mv -t ./bins/ {} + - # shopt -s extglob - # rm -rf !("bins") - # name: "PrepareArtifacts" - # displayName: "Prepare Artifacts" + - script: | + mkdir -p ./output/bins + cd ./output + find . -name '*.tgz' -print -exec mv -t ./bins/ {} + + find . -name '*.zip' -print -exec mv -t ./bins/ {} + + shopt -s extglob + rm -rf !("bins") + name: "PrepareArtifacts" + displayName: "Prepare Artifacts" - # - task: CopyFiles@2 - # inputs: - # sourceFolder: "output" - # targetFolder: $(Build.ArtifactStagingDirectory) - # condition: succeeded() + - task: CopyFiles@2 + inputs: + sourceFolder: "output" + targetFolder: $(Build.ArtifactStagingDirectory) + condition: succeeded() - # - task: PublishBuildArtifacts@1 - # inputs: - # artifactName: "output" - # pathtoPublish: "$(Build.ArtifactStagingDirectory)" - # condition: succeeded() + - task: PublishBuildArtifacts@1 + inputs: + artifactName: "output" + pathtoPublish: "$(Build.ArtifactStagingDirectory)" + condition: succeeded() - # - task: AzureCLI@1 - # inputs: - # azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) - # scriptLocation: "inlineScript" - # inlineScript: | - # echo Creating storage container with name acn-$(STORAGE_ID) and account name $(STORAGE_ACCOUNT_NAME) - # az storage container create -n acn-$(STORAGE_ID) --account-name $(STORAGE_ACCOUNT_NAME) --public-access container - # az storage blob upload-batch -d acn-$(STORAGE_ID) -s ./output/bins/ --account-name $(STORAGE_ACCOUNT_NAME) - # displayName: Create artifact storage container - # condition: succeeded() + - task: AzureCLI@1 + inputs: + azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + inlineScript: | + echo Creating storage container with name acn-$(STORAGE_ID) and account name $(STORAGE_ACCOUNT_NAME) + az storage container create -n acn-$(STORAGE_ID) --account-name $(STORAGE_ACCOUNT_NAME) --public-access container + az storage blob upload-batch -d acn-$(STORAGE_ID) -s ./output/bins/ --account-name $(STORAGE_ACCOUNT_NAME) + displayName: Create artifact storage container + condition: succeeded() - # - stage: containerize - # displayName: Build Images - # dependsOn: - # - setup - # - test - # jobs: - # - job: containerize_amd64 - # displayName: Build Images - # pool: - # name: "$(BUILD_POOL_NAME_LINUX_AMD64)" - # strategy: - # matrix: - # azure_ipam_linux_amd64: - # arch: amd64 - # name: azure-ipam - # os: linux - # azure_ipam_windows2019_amd64: - # arch: amd64 - # name: azure-ipam - # os: windows - # os_version: ltsc2019 - # azure_ipam_windows2022_amd64: - # arch: amd64 - # name: azure-ipam - # os: windows - # os_version: ltsc2022 - # cni_linux_amd64: - # arch: amd64 - # name: cni - # os: linux - # cni_windows2019_amd64: - # arch: amd64 - # name: cni - # os: windows - # os_version: ltsc2019 - # cni_windows2022_amd64: - # arch: amd64 - # name: cni - # os: windows - # os_version: ltsc2022 - # cni_dropgz_linux_amd64: - # arch: amd64 - # name: cni-dropgz - # os: linux - # cni_dropgz_test_linux_amd64: - # arch: amd64 - # name: cni-dropgz-test - # os: linux - # cni_dropgz_windows2019_amd64: - # arch: amd64 - # name: cni-dropgz - # os: windows - # os_version: ltsc2019 - # cni_dropgz_windows2022_amd64: - # arch: amd64 - # name: cni-dropgz - # os: windows - # os_version: ltsc2022 - # cni_dropgz_test_windows2019_amd64: - # arch: amd64 - # name: cni-dropgz-test - # os: windows - # os_version: ltsc2019 - # cni_dropgz_test_windows2022_amd64: - # arch: amd64 - # name: cni-dropgz-test - # os: windows - # os_version: ltsc2022 - # cns_linux_amd64: - # arch: amd64 - # name: cns - # os: linux - # cns_windows2019_amd64: - # arch: amd64 - # name: cns - # os: windows - # os_version: ltsc2019 - # cns_windows2022_amd64: - # arch: amd64 - # name: cns - # os: windows - # os_version: ltsc2022 - # npm_linux_amd64: - # arch: amd64 - # name: npm - # os: linux - # npm_windows2022_amd64: - # arch: amd64 - # name: npm - # os: windows - # os_version: ltsc2022 - # steps: - # - template: containers/container-template.yaml - # parameters: - # arch: $(arch) - # name: $(name) - # os: $(os) - # os_version: $(os_version) - # - job: containerize_linux_arm64 - # displayName: Build Images - # variables: - # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - # pool: - # name: "$(BUILD_POOL_NAME_LINUX_ARM64)" - # strategy: - # matrix: - # azure_ipam_linux_arm64: - # arch: arm64 - # name: azure-ipam - # os: linux - # cni_linux_arm64: - # arch: arm64 - # name: cni - # os: linux - # cni_dropgz_linux_arm64: - # arch: arm64 - # name: cni-dropgz - # os: linux - # cni_dropgz_test_linux_arm64: - # arch: arm64 - # name: cni-dropgz-test - # os: linux - # cns_linux_arm64: - # arch: arm64 - # name: cns - # os: linux - # npm_linux_arm64: - # arch: arm64 - # name: npm - # os: linux - # steps: - # - template: containers/container-template.yaml - # parameters: - # arch: $(arch) - # name: $(name) - # os: $(os) - # - job: check_tag - # displayName: Check Tag - # pool: - # name: $(BUILD_POOL_NAME_DEFAULT) - # steps: - # - script: | - # echo "##vso[task.setvariable variable=currentTagBuild;isOutput=true]$(make version)" - # name: "CurrentTagBuild" - # displayName: "Set current tag variable" - # condition: always() + - stage: containerize + displayName: Build Images + dependsOn: + - setup + - test + jobs: + - job: containerize_amd64 + displayName: Build Images + pool: + name: "$(BUILD_POOL_NAME_LINUX_AMD64)" + strategy: + matrix: + azure_ipam_linux_amd64: + arch: amd64 + name: azure-ipam + os: linux + azure_ipam_windows2019_amd64: + arch: amd64 + name: azure-ipam + os: windows + os_version: ltsc2019 + azure_ipam_windows2022_amd64: + arch: amd64 + name: azure-ipam + os: windows + os_version: ltsc2022 + cni_linux_amd64: + arch: amd64 + name: cni + os: linux + cni_windows2019_amd64: + arch: amd64 + name: cni + os: windows + os_version: ltsc2019 + cni_windows2022_amd64: + arch: amd64 + name: cni + os: windows + os_version: ltsc2022 + cni_dropgz_linux_amd64: + arch: amd64 + name: cni-dropgz + os: linux + cni_dropgz_test_linux_amd64: + arch: amd64 + name: cni-dropgz-test + os: linux + cni_dropgz_windows2019_amd64: + arch: amd64 + name: cni-dropgz + os: windows + os_version: ltsc2019 + cni_dropgz_windows2022_amd64: + arch: amd64 + name: cni-dropgz + os: windows + os_version: ltsc2022 + cni_dropgz_test_windows2019_amd64: + arch: amd64 + name: cni-dropgz-test + os: windows + os_version: ltsc2019 + cni_dropgz_test_windows2022_amd64: + arch: amd64 + name: cni-dropgz-test + os: windows + os_version: ltsc2022 + cns_linux_amd64: + arch: amd64 + name: cns + os: linux + cns_windows2019_amd64: + arch: amd64 + name: cns + os: windows + os_version: ltsc2019 + cns_windows2022_amd64: + arch: amd64 + name: cns + os: windows + os_version: ltsc2022 + npm_linux_amd64: + arch: amd64 + name: npm + os: linux + npm_windows2022_amd64: + arch: amd64 + name: npm + os: windows + os_version: ltsc2022 + steps: + - template: containers/container-template.yaml + parameters: + arch: $(arch) + name: $(name) + os: $(os) + os_version: $(os_version) + - job: containerize_linux_arm64 + displayName: Build Images + variables: + TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + pool: + name: "$(BUILD_POOL_NAME_LINUX_ARM64)" + strategy: + matrix: + azure_ipam_linux_arm64: + arch: arm64 + name: azure-ipam + os: linux + cni_linux_arm64: + arch: arm64 + name: cni + os: linux + cni_dropgz_linux_arm64: + arch: arm64 + name: cni-dropgz + os: linux + cni_dropgz_test_linux_arm64: + arch: arm64 + name: cni-dropgz-test + os: linux + cns_linux_arm64: + arch: arm64 + name: cns + os: linux + npm_linux_arm64: + arch: arm64 + name: npm + os: linux + steps: + - template: containers/container-template.yaml + parameters: + arch: $(arch) + name: $(name) + os: $(os) + - job: check_tag + displayName: Check Tag + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + steps: + - script: | + echo "##vso[task.setvariable variable=currentTagBuild;isOutput=true]$(make version)" + name: "CurrentTagBuild" + displayName: "Set current tag variable" + condition: always() - # - stage: validate1 - # displayName: Validate Tags - # dependsOn: - # - setup - # - containerize - # variables: - # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - # CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] - # condition: ne(variables.TAG, variables.CURRENT_VERSION) - # jobs: - # - job: timeout_and_cancel - # displayName: Cancel Run - # pool: - # name: $(BUILD_POOL_NAME_DEFAULT) - # steps: - # - script: | - # echo $TAG - # echo $CURRENT_VERSION - # echo "Checking if branch up to date with master" + - stage: validate1 + displayName: Validate Tags + dependsOn: + - setup + - containerize + variables: + TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] + condition: ne(variables.TAG, variables.CURRENT_VERSION) + jobs: + - job: timeout_and_cancel + displayName: Cancel Run + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + steps: + - script: | + echo $TAG + echo $CURRENT_VERSION + echo "Checking if branch up to date with master" - # - stage: publish - # displayName: Publish Multiarch Manifests - # dependsOn: - # - containerize - # variables: - # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - # CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] - # Packaging.EnableSBOMSigning: false - # condition: and(succeeded(), eq(variables.TAG, variables.CURRENT_VERSION)) - # jobs: - # - job: manifest - # displayName: Compile Manifests - # pool: - # name: "$(BUILD_POOL_NAME_DEFAULT)" - # strategy: - # matrix: - # azure_ipam: - # name: azure-ipam - # os_versions: ltsc2019 ltsc2022 - # platforms: linux/amd64 linux/arm64 windows/amd64 - # cni: - # name: cni - # os_versions: ltsc2019 ltsc2022 - # platforms: linux/amd64 linux/arm64 windows/amd64 - # cni_dropgz: - # name: cni-dropgz - # os_versions: ltsc2019 ltsc2022 - # platforms: linux/amd64 linux/arm64 windows/amd64 - # cni_dropgz_test: - # name: cni-dropgz-test - # os_versions: ltsc2019 ltsc2022 - # platforms: linux/amd64 linux/arm64 windows/amd64 - # cns: - # name: cns - # os_versions: ltsc2019 ltsc2022 - # platforms: linux/amd64 linux/arm64 windows/amd64 - # npm: - # name: npm - # os_versions: ltsc2022 - # platforms: linux/amd64 linux/arm64 windows/amd64 - # steps: - # - template: containers/manifest-template.yaml - # parameters: - # name: $(name) - # os_versions: $(os_versions) - # platforms: $(platforms) - # tag: $(TAG) - # - job: check_tag - # displayName: Check Tag - # pool: - # name: $(BUILD_POOL_NAME_DEFAULT) - # steps: - # - script: | - # echo "##vso[task.setvariable variable=currentTagManifests;isOutput=true]$(make version)" - # name: "CurrentTagManifests" - # displayName: "Set current tag variable" - # condition: always() + - stage: publish + displayName: Publish Multiarch Manifests + dependsOn: + - containerize + variables: + TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagBuild.currentTagBuild'] ] + Packaging.EnableSBOMSigning: false + condition: and(succeeded(), eq(variables.TAG, variables.CURRENT_VERSION)) + jobs: + - job: manifest + displayName: Compile Manifests + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" + strategy: + matrix: + azure_ipam: + name: azure-ipam + os_versions: ltsc2019 ltsc2022 + platforms: linux/amd64 linux/arm64 windows/amd64 + cni: + name: cni + os_versions: ltsc2019 ltsc2022 + platforms: linux/amd64 linux/arm64 windows/amd64 + cni_dropgz: + name: cni-dropgz + os_versions: ltsc2019 ltsc2022 + platforms: linux/amd64 linux/arm64 windows/amd64 + cni_dropgz_test: + name: cni-dropgz-test + os_versions: ltsc2019 ltsc2022 + platforms: linux/amd64 linux/arm64 windows/amd64 + cns: + name: cns + os_versions: ltsc2019 ltsc2022 + platforms: linux/amd64 linux/arm64 windows/amd64 + npm: + name: npm + os_versions: ltsc2022 + platforms: linux/amd64 linux/arm64 windows/amd64 + steps: + - template: containers/manifest-template.yaml + parameters: + name: $(name) + os_versions: $(os_versions) + platforms: $(platforms) + tag: $(TAG) + - job: check_tag + displayName: Check Tag + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + steps: + - script: | + echo "##vso[task.setvariable variable=currentTagManifests;isOutput=true]$(make version)" + name: "CurrentTagManifests" + displayName: "Set current tag variable" + condition: always() - # # Cilium Podsubnet E2E tests - # - template: singletenancy/cilium/cilium-e2e-job-template.yaml - # parameters: - # name: "cilium_e2e" - # displayName: Cilium - # testDropgz: "" - # clusterType: swift-byocni-nokubeproxy-up - # clusterName: "ciliume2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + # Cilium Podsubnet E2E tests + - template: singletenancy/cilium/cilium-e2e-job-template.yaml + parameters: + name: "cilium_e2e" + displayName: Cilium + testDropgz: "" + clusterType: swift-byocni-nokubeproxy-up + clusterName: "ciliume2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # - template: singletenancy/cilium/cilium-e2e-job-template.yaml - # parameters: - # name: "cilium_podsubnet_cni_e2e" - # displayName: CNI - Cilium Podsubnet - # testDropgz: true - # clusterType: swift-byocni-nokubeproxy-up - # clusterName: "cilpodcnie2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + - template: singletenancy/cilium/cilium-e2e-job-template.yaml + parameters: + name: "cilium_podsubnet_cni_e2e" + displayName: CNI - Cilium Podsubnet + testDropgz: true + clusterType: swift-byocni-nokubeproxy-up + clusterName: "cilpodcnie2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # # Cilium Overlay E2E tests - # - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml - # parameters: - # name: "cilium_overlay_e2e" - # displayName: Cilium on AKS Overlay - # testDropgz: "" - # clusterType: overlay-byocni-nokubeproxy-up - # clusterName: "cilovere2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + # Cilium Overlay E2E tests + - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml + parameters: + name: "cilium_overlay_e2e" + displayName: Cilium on AKS Overlay + testDropgz: "" + clusterType: overlay-byocni-nokubeproxy-up + clusterName: "cilovere2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml - # parameters: - # name: "cilium_overlay_cni_e2e" - # displayName: CNI - Cilium on AKS Overlay - # testDropgz: true - # clusterType: overlay-byocni-nokubeproxy-up - # clusterName: "cilovercnie2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml + parameters: + name: "cilium_overlay_cni_e2e" + displayName: CNI - Cilium on AKS Overlay + testDropgz: true + clusterType: overlay-byocni-nokubeproxy-up + clusterName: "cilovercnie2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # # Azure Overlay E2E tests - # - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml - # parameters: - # name: "azure_overlay_e2e" - # displayName: Azure Overlay - # os: linux - # testDropgz: "" - # clusterType: overlay-byocni-up - # clusterName: "azovere2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + # Azure Overlay E2E tests + - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml + parameters: + name: "azure_overlay_e2e" + displayName: Azure Overlay + os: linux + testDropgz: "" + clusterType: overlay-byocni-up + clusterName: "azovere2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml - # parameters: - # name: "azure_overlay_cni_e2e" - # displayName: CNI - Azure Overlay - # os: linux - # testDropgz: true - # clusterType: overlay-byocni-up - # clusterName: "azovercnie2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml + parameters: + name: "azure_overlay_cni_e2e" + displayName: CNI - Azure Overlay + os: linux + testDropgz: true + clusterType: overlay-byocni-up + clusterName: "azovercnie2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # # AKS Swift E2E tests - # - template: singletenancy/aks-swift/e2e-job-template.yaml - # parameters: - # name: "aks_swift_e2e" - # displayName: AKS Swift Ubuntu - # testDropgz: "" - # clusterType: swift-byocni-up - # clusterName: "swifte2e" - # vmSize: Standard_B2s - # k8sVersion: "" - # dependsOn: "containerize" + # AKS Swift E2E tests + - template: singletenancy/aks-swift/e2e-job-template.yaml + parameters: + name: "aks_swift_e2e" + displayName: AKS Swift Ubuntu + testDropgz: "" + clusterType: swift-byocni-up + clusterName: "swifte2e" + vmSize: Standard_B2s + k8sVersion: "" + dependsOn: "containerize" - # - template: singletenancy/aks-swift/e2e-job-template.yaml - # parameters: - # name: "aks_swift_cni_e2e" - # displayName: CNI - AKS Swift - # testDropgz: true - # clusterType: swift-byocni-up - # clusterName: "swiftcnie2e" - # vmSize: Standard_B2ms - # k8sVersion: "" - # dependsOn: "containerize" + - template: singletenancy/aks-swift/e2e-job-template.yaml + parameters: + name: "aks_swift_cni_e2e" + displayName: CNI - AKS Swift + testDropgz: true + clusterType: swift-byocni-up + clusterName: "swiftcnie2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "containerize" - # # CNIv1 E2E tests - # - template: singletenancy/aks/e2e-job-template.yaml - # parameters: - # name: "aks_ubuntu_22_linux_e2e" - # displayName: AKS Ubuntu 22 - # arch: "amd64" - # os: "linux" - # clusterType: linux-cniv1-up - # clusterName: "ubuntu22e2e" - # vmSize: Standard_B2s - # k8sVersion: 1.25 - # scaleup: 100 - # dependsOn: "containerize" + # CNIv1 E2E tests + - template: singletenancy/aks/e2e-job-template.yaml + parameters: + name: "aks_ubuntu_22_linux_e2e" + displayName: AKS Ubuntu 22 + arch: "amd64" + os: "linux" + clusterType: linux-cniv1-up + clusterName: "ubuntu22e2e" + vmSize: Standard_B2s + k8sVersion: 1.25 + scaleup: 100 + dependsOn: "containerize" - # - template: singletenancy/aks/e2e-job-template.yaml - # parameters: - # name: "aks_windows_22_e2e" - # displayName: AKS Windows 2022 - # arch: amd64 - # os: windows - # clusterType: windows-cniv1-up - # clusterName: "win22e2e" - # vmSize: Standard_B2ms - # os_version: "ltsc2022" - # scaleup: 50 - # dependsOn: "containerize" + - template: singletenancy/aks/e2e-job-template.yaml + parameters: + name: "aks_windows_22_e2e" + displayName: AKS Windows 2022 + arch: amd64 + os: windows + clusterType: windows-cniv1-up + clusterName: "win22e2e" + vmSize: Standard_B2ms + os_version: "ltsc2022" + scaleup: 50 + dependsOn: "containerize" - # # CNI dual stack overlay E2E tests - # - template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml - # parameters: - # name: "dualstackoverlay_e2e" - # displayName: AKS DualStack Overlay - # os: linux - # clusterType: dualstack-overlay-byocni-up - # clusterName: "dsovere2e" - # vmSize: Standard_B2ms - # dependsOn: "containerize" - # testDropgz: true + # CNI dual stack overlay E2E tests + - template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml + parameters: + name: "dualstackoverlay_e2e" + displayName: AKS DualStack Overlay + os: linux + clusterType: dualstack-overlay-byocni-up + clusterName: "dsovere2e" + vmSize: Standard_B2ms + dependsOn: "containerize" + testDropgz: true - # - stage: delete - # displayName: Delete Clusters - # condition: always() - # dependsOn: - # - setup - # - "azure_overlay_e2e" - # - "azure_overlay_cni_e2e" - # - "aks_swift_e2e" - # - "aks_swift_cni_e2e" - # - "cilium_e2e" - # - "cilium_podsubnet_cni_e2e" - # - "cilium_overlay_e2e" - # - "cilium_overlay_cni_e2e" - # - "aks_ubuntu_22_linux_e2e" - # - "aks_windows_22_e2e" - # - "dualstackoverlay_e2e" - # variables: - # commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] - # jobs: - # - job: delete - # displayName: Delete Cluster - # pool: - # name: "$(BUILD_POOL_NAME_DEFAULT)" - # strategy: - # matrix: - # cilium_e2e: - # name: cilium_e2e - # clusterName: "ciliume2e" - # cilium_overlay_e2e: - # name: cilium_overlay_e2e - # clusterName: "cilovere2e" - # azure_overlay_e2e: - # name: azure_overlay_e2e - # clusterName: "azovere2e" - # aks_swift_e2e: - # name: aks_swift_e2e - # clusterName: "swifte2e" - # azure_overlay_cni_e2e: - # name: "azure_overlay_cni_e2e" - # clusterName: "azovercnie2e" - # cilium_podsubnet_cni_e2e: - # name: cilium_podsubnet_cni_e2e - # clusterName: "cilpodcnie2e" - # cilium_overlay_cni_e2e: - # name: cilium_overlay_cni_e2e - # clusterName: "cilovercnie2e" - # aks_swift_cni_e2e: - # name: aks_swift_cni_e2e - # clusterName: "swiftcnie2e" - # aks_ubuntu_22_linux_e2e: - # name: aks_ubuntu_22_linux_e2e - # clusterName: "ubuntu22e2e" - # aks_windows_22_e2e: - # name: aks_windows_22_e2e - # clusterName: "win22e2e" - # dualstackoverlay_e2e: - # name: dualstackoverlay_e2e - # clusterName: "dsovere2e" - # steps: - # - template: templates/delete-cluster.yaml - # parameters: - # name: $(name) - # clusterName: $(clusterName)-$(commitID) - # region: $(REGION_AKS_CLUSTER_TEST) + - stage: delete + displayName: Delete Clusters + condition: always() + dependsOn: + - setup + - "azure_overlay_e2e" + - "azure_overlay_cni_e2e" + - "aks_swift_e2e" + - "aks_swift_cni_e2e" + - "cilium_e2e" + - "cilium_podsubnet_cni_e2e" + - "cilium_overlay_e2e" + - "cilium_overlay_cni_e2e" + - "aks_ubuntu_22_linux_e2e" + - "aks_windows_22_e2e" + - "dualstackoverlay_e2e" + variables: + commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] + jobs: + - job: delete + displayName: Delete Cluster + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" + strategy: + matrix: + cilium_e2e: + name: cilium_e2e + clusterName: "ciliume2e" + cilium_overlay_e2e: + name: cilium_overlay_e2e + clusterName: "cilovere2e" + azure_overlay_e2e: + name: azure_overlay_e2e + clusterName: "azovere2e" + aks_swift_e2e: + name: aks_swift_e2e + clusterName: "swifte2e" + azure_overlay_cni_e2e: + name: "azure_overlay_cni_e2e" + clusterName: "azovercnie2e" + cilium_podsubnet_cni_e2e: + name: cilium_podsubnet_cni_e2e + clusterName: "cilpodcnie2e" + cilium_overlay_cni_e2e: + name: cilium_overlay_cni_e2e + clusterName: "cilovercnie2e" + aks_swift_cni_e2e: + name: aks_swift_cni_e2e + clusterName: "swiftcnie2e" + aks_ubuntu_22_linux_e2e: + name: aks_ubuntu_22_linux_e2e + clusterName: "ubuntu22e2e" + aks_windows_22_e2e: + name: aks_windows_22_e2e + clusterName: "win22e2e" + dualstackoverlay_e2e: + name: dualstackoverlay_e2e + clusterName: "dsovere2e" + steps: + - template: templates/delete-cluster.yaml + parameters: + name: $(name) + clusterName: $(clusterName)-$(commitID) + region: $(REGION_AKS_CLUSTER_TEST) - # - stage: validate2 - # displayName: Validate Tags - # dependsOn: - # - setup - # - publish - # variables: - # TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] - # CURRENT_VERSION: $[ stagedependencies.publish.check_tag.outputs['CurrentTagManifests.currentTagManifests'] ] - # condition: ne(variables.TAG, variables.CURRENT_VERSION) - # jobs: - # - job: timeout_and_cancel - # displayName: Cancel Run - # pool: - # name: $(BUILD_POOL_NAME_DEFAULT) - # steps: - # - script: | - # echo $TAG - # echo $CURRENT_VERSION - # echo "Checking if branch is up to date with master" + - stage: validate2 + displayName: Validate Tags + dependsOn: + - setup + - publish + variables: + TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] + CURRENT_VERSION: $[ stagedependencies.publish.check_tag.outputs['CurrentTagManifests.currentTagManifests'] ] + condition: ne(variables.TAG, variables.CURRENT_VERSION) + jobs: + - job: timeout_and_cancel + displayName: Cancel Run + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + steps: + - script: | + echo $TAG + echo $CURRENT_VERSION + echo "Checking if branch is up to date with master" - # - stage: cleanup - # displayName: Cleanup - # dependsOn: - # - "azure_overlay_e2e" - # - "azure_overlay_cni_e2e" - # - "aks_swift_e2e" - # - "aks_swift_cni_e2e" - # - "cilium_e2e" - # - "cilium_podsubnet_cni_e2e" - # - "cilium_overlay_e2e" - # - "cilium_overlay_cni_e2e" - # - "aks_ubuntu_22_linux_e2e" - # - "aks_windows_22_e2e" - # - "dualstackoverlay_e2e" + - stage: cleanup + displayName: Cleanup + dependsOn: + - "azure_overlay_e2e" + - "azure_overlay_cni_e2e" + - "aks_swift_e2e" + - "aks_swift_cni_e2e" + - "cilium_e2e" + - "cilium_podsubnet_cni_e2e" + - "cilium_overlay_e2e" + - "cilium_overlay_cni_e2e" + - "aks_ubuntu_22_linux_e2e" + - "aks_windows_22_e2e" + - "dualstackoverlay_e2e" - # jobs: - # - job: delete_remote_artifacts - # displayName: Delete remote artifacts - # pool: - # name: $(BUILD_POOL_NAME_DEFAULT) - # demands: agent.os -equals Linux - # steps: - # - checkout: none - # - task: AzureCLI@1 - # inputs: - # azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) - # scriptLocation: "inlineScript" - # inlineScript: | - # BUILD_NUMBER=$(Build.BuildNumber) - # BUILD_NUMBER=${BUILD_NUMBER//./-} - # echo Deleting storage container with name acn-$BUILD_NUMBER and account name $(STORAGE_ACCOUNT_NAME) - # az storage container delete -n acn-$BUILD_NUMBER --account-name $(STORAGE_ACCOUNT_NAME) - # displayName: Cleanup remote Azure storage container + jobs: + - job: delete_remote_artifacts + displayName: Delete remote artifacts + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + demands: agent.os -equals Linux + steps: + - checkout: none + - task: AzureCLI@1 + inputs: + azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + inlineScript: | + BUILD_NUMBER=$(Build.BuildNumber) + BUILD_NUMBER=${BUILD_NUMBER//./-} + echo Deleting storage container with name acn-$BUILD_NUMBER and account name $(STORAGE_ACCOUNT_NAME) + az storage container delete -n acn-$BUILD_NUMBER --account-name $(STORAGE_ACCOUNT_NAME) + displayName: Cleanup remote Azure storage container diff --git a/.pipelines/test-file.txt b/.pipelines/test-file.txt deleted file mode 100644 index af14a93c85..0000000000 --- a/.pipelines/test-file.txt +++ /dev/null @@ -1 +0,0 @@ -Random information that will test the merge-queue From 99d611cc1ec292dfc92744050499aa08d9f90f4c Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Tue, 19 Dec 2023 14:27:36 -0800 Subject: [PATCH 3/6] chore: change DAG dependencies --- .pipelines/pipeline.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index af1845e5e9..222375a938 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -14,7 +14,7 @@ pr: trigger: branches: include: - - gh-readonly-queue/merge-queue-test/* + - gh-readonly-queue/master/* paths: exclude: - docs @@ -107,7 +107,6 @@ stages: displayName: Build Binaries dependsOn: - setup - - test jobs: - job: build displayName: Build Binaries @@ -158,7 +157,6 @@ stages: displayName: Build Images dependsOn: - setup - - test jobs: - job: containerize_amd64 displayName: Build Images From d0594024b8fc759c73c8659112ba6fe6d1e8e615 Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Tue, 19 Dec 2023 15:02:59 -0800 Subject: [PATCH 4/6] ci: add UT to mq runs --- .pipelines/pipeline.yaml | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index 222375a938..36f7093965 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -103,10 +103,55 @@ stages: displayName: "Run Windows Tests" - ${{ else }}: + - stage: test + displayName: Test ACN + dependsOn: + - setup + jobs: + - job: test + displayName: Run Tests + variables: + STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + pool: + name: "$(BUILD_POOL_NAME_DEFAULT)" + steps: + - script: | + make tools + # run test, echo exit status code to fd 3, pipe output from test to tee, which splits output to stdout and go-junit-report (which converts test output to report.xml), stdout from tee is redirected to fd 4. Take output written to fd 3 (which is the exit code of test), redirect to stdout, pipe to read from stdout then exit with that status code. Read all output from fd 4 (output from tee) and write to top stdout + { { { { + sudo -E env "PATH=$PATH" make test-all; + echo $? >&3; + } | tee >(build/tools/bin/go-junit-report > report.xml) >&4; + } 3>&1; + } | { read xs; exit $xs; } + } 4>&1 + retryCountOnTaskFailure: 3 + name: "Test" + displayName: "Run Tests" + + - stage: test_windows + displayName: Test ACN Windows + dependsOn: + - setup + jobs: + - job: test + displayName: Run Tests + variables: + STORAGE_ID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ] + pool: + name: "$(BUILD_POOL_NAME_DEFAULT_WINDOWS_ALT)" + steps: + - script: | + cd npm/ + go test ./... + retryCountOnTaskFailure: 3 + name: "TestWindows" + displayName: "Run Windows Tests" - stage: binaries displayName: Build Binaries dependsOn: - setup + - test jobs: - job: build displayName: Build Binaries @@ -157,6 +202,7 @@ stages: displayName: Build Images dependsOn: - setup + - test jobs: - job: containerize_amd64 displayName: Build Images From 9cd051b15d546c18b6d8a8936cfc69bb36805a31 Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Tue, 19 Dec 2023 15:20:29 -0800 Subject: [PATCH 5/6] ci: add merge_group for GHA --- .github/workflows/codeql.yaml | 5 +- .github/workflows/crdgen.yaml | 5 +- .pipelines/pipeline.yaml | 134 +++++++++------------------------- 3 files changed, 42 insertions(+), 102 deletions(-) diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 2187ccdb53..68a01d62c9 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -5,7 +5,7 @@ on: - master - release/* pull_request: - branches: + branches: - master - release/* types: @@ -14,6 +14,9 @@ on: - synchronize - ready_for_review workflow_dispatch: + merge_group: + types: + - checks_requested jobs: analyze: name: Analyze diff --git a/.github/workflows/crdgen.yaml b/.github/workflows/crdgen.yaml index 9d7faafa54..781647c9c3 100644 --- a/.github/workflows/crdgen.yaml +++ b/.github/workflows/crdgen.yaml @@ -7,6 +7,9 @@ on: - reopened - synchronize - ready_for_review + merge_group: + types: + - checks_requested jobs: crdgen: strategy: @@ -21,7 +24,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-go@v5 with: - go-version: ${{ matrix.go-version }} + go-version: ${{ matrix.go-version }} - name: Regenerate NodeNetworkConfig CRD run: make -C crd/nodenetworkconfig - name: Regenerate MultitenantNetworkContainer CRD diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index 36f7093965..9f387ac8e9 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -52,7 +52,6 @@ stages: echo $(Build.QueuedBy) echo $(Build.Reason) # manual, PR, IndividualCI echo $(Build.SourceBranch) - name: "EnvironmentalVariables" displayName: "Set environmental variables" condition: always() @@ -147,6 +146,7 @@ stages: retryCountOnTaskFailure: 3 name: "TestWindows" displayName: "Run Windows Tests" + - stage: binaries displayName: Build Binaries dependsOn: @@ -242,10 +242,6 @@ stages: arch: amd64 name: cni-dropgz os: linux - cni_dropgz_test_linux_amd64: - arch: amd64 - name: cni-dropgz-test - os: linux cni_dropgz_windows2019_amd64: arch: amd64 name: cni-dropgz @@ -256,16 +252,6 @@ stages: name: cni-dropgz os: windows os_version: ltsc2022 - cni_dropgz_test_windows2019_amd64: - arch: amd64 - name: cni-dropgz-test - os: windows - os_version: ltsc2019 - cni_dropgz_test_windows2022_amd64: - arch: amd64 - name: cni-dropgz-test - os: windows - os_version: ltsc2022 cns_linux_amd64: arch: amd64 name: cns @@ -316,10 +302,6 @@ stages: arch: arm64 name: cni-dropgz os: linux - cni_dropgz_test_linux_arm64: - arch: arm64 - name: cni-dropgz-test - os: linux cns_linux_arm64: arch: arm64 name: cns @@ -393,10 +375,6 @@ stages: name: cni-dropgz os_versions: ltsc2019 ltsc2022 platforms: linux/amd64 linux/arm64 windows/amd64 - cni_dropgz_test: - name: cni-dropgz-test - os_versions: ltsc2019 ltsc2022 - platforms: linux/amd64 linux/arm64 windows/amd64 cns: name: cns os_versions: ltsc2019 ltsc2022 @@ -428,46 +406,22 @@ stages: parameters: name: "cilium_e2e" displayName: Cilium - testDropgz: "" clusterType: swift-byocni-nokubeproxy-up clusterName: "ciliume2e" vmSize: Standard_B2ms k8sVersion: "" - dependsOn: "containerize" - - - template: singletenancy/cilium/cilium-e2e-job-template.yaml - parameters: - name: "cilium_podsubnet_cni_e2e" - displayName: CNI - Cilium Podsubnet - testDropgz: true - clusterType: swift-byocni-nokubeproxy-up - clusterName: "cilpodcnie2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "containerize" + dependsOn: "test" # Cilium Overlay E2E tests - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml parameters: name: "cilium_overlay_e2e" displayName: Cilium on AKS Overlay - testDropgz: "" clusterType: overlay-byocni-nokubeproxy-up clusterName: "cilovere2e" vmSize: Standard_B2ms k8sVersion: "" - dependsOn: "containerize" - - - template: singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml - parameters: - name: "cilium_overlay_cni_e2e" - displayName: CNI - Cilium on AKS Overlay - testDropgz: true - clusterType: overlay-byocni-nokubeproxy-up - clusterName: "cilovercnie2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "containerize" + dependsOn: "test" # Azure Overlay E2E tests - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml @@ -475,47 +429,33 @@ stages: name: "azure_overlay_e2e" displayName: Azure Overlay os: linux - testDropgz: "" clusterType: overlay-byocni-up clusterName: "azovere2e" vmSize: Standard_B2ms k8sVersion: "" - dependsOn: "containerize" - - - template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml - parameters: - name: "azure_overlay_cni_e2e" - displayName: CNI - Azure Overlay - os: linux - testDropgz: true - clusterType: overlay-byocni-up - clusterName: "azovercnie2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "containerize" + dependsOn: "test" # AKS Swift E2E tests - template: singletenancy/aks-swift/e2e-job-template.yaml parameters: name: "aks_swift_e2e" displayName: AKS Swift Ubuntu - testDropgz: "" clusterType: swift-byocni-up clusterName: "swifte2e" vmSize: Standard_B2s k8sVersion: "" - dependsOn: "containerize" + dependsOn: "test" + # AKS Swift Vnet Scale E2E tests - template: singletenancy/aks-swift/e2e-job-template.yaml parameters: - name: "aks_swift_cni_e2e" - displayName: CNI - AKS Swift - testDropgz: true - clusterType: swift-byocni-up - clusterName: "swiftcnie2e" - vmSize: Standard_B2ms - k8sVersion: "" - dependsOn: "containerize" + name: "aks_swift_vnetscale_e2e" + displayName: AKS Swift Vnet Scale Ubuntu + clusterType: vnetscale-swift-byocni-up + clusterName: "vscaleswifte2e" + vmSize: Standard_B2s + k8sVersion: "1.28" + dependsOn: "test" # CNIv1 E2E tests - template: singletenancy/aks/e2e-job-template.yaml @@ -529,7 +469,7 @@ stages: vmSize: Standard_B2s k8sVersion: 1.25 scaleup: 100 - dependsOn: "containerize" + dependsOn: "test" - template: singletenancy/aks/e2e-job-template.yaml parameters: @@ -542,7 +482,7 @@ stages: vmSize: Standard_B2ms os_version: "ltsc2022" scaleup: 50 - dependsOn: "containerize" + dependsOn: "test" # CNI dual stack overlay E2E tests - template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml @@ -553,25 +493,21 @@ stages: clusterType: dualstack-overlay-byocni-up clusterName: "dsovere2e" vmSize: Standard_B2ms - dependsOn: "containerize" - testDropgz: true + dependsOn: "test" - stage: delete displayName: Delete Clusters condition: always() dependsOn: - setup - - "azure_overlay_e2e" - - "azure_overlay_cni_e2e" - - "aks_swift_e2e" - - "aks_swift_cni_e2e" - - "cilium_e2e" - - "cilium_podsubnet_cni_e2e" - - "cilium_overlay_e2e" - - "cilium_overlay_cni_e2e" - - "aks_ubuntu_22_linux_e2e" - - "aks_windows_22_e2e" - - "dualstackoverlay_e2e" + - azure_overlay_e2e + - aks_swift_e2e + - cilium_e2e + - cilium_overlay_e2e + - aks_ubuntu_22_linux_e2e + - aks_swift_vnetscale_e2e + - aks_windows_22_e2e + - dualstackoverlay_e2e variables: commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] jobs: @@ -593,6 +529,9 @@ stages: aks_swift_e2e: name: aks_swift_e2e clusterName: "swifte2e" + aks_swift_vnetscale_e2e: + name: aks_swift_vnetscale_e2e + clusterName: "vscaleswifte2e" azure_overlay_cni_e2e: name: "azure_overlay_cni_e2e" clusterName: "azovercnie2e" @@ -644,18 +583,13 @@ stages: - stage: cleanup displayName: Cleanup dependsOn: - - "azure_overlay_e2e" - - "azure_overlay_cni_e2e" - - "aks_swift_e2e" - - "aks_swift_cni_e2e" - - "cilium_e2e" - - "cilium_podsubnet_cni_e2e" - - "cilium_overlay_e2e" - - "cilium_overlay_cni_e2e" - - "aks_ubuntu_22_linux_e2e" - - "aks_windows_22_e2e" - - "dualstackoverlay_e2e" - + - azure_overlay_e2e + - aks_swift_e2e + - cilium_e2e + - cilium_overlay_e2e + - aks_ubuntu_22_linux_e2e + - aks_windows_22_e2e + - dualstackoverlay_e2e jobs: - job: delete_remote_artifacts displayName: Delete remote artifacts From 2d6aad0a7d37d2ac43d27fe1554a1cb1ef946a2a Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Tue, 19 Dec 2023 18:47:07 -0800 Subject: [PATCH 6/6] ci: add if to codeql --- .github/workflows/codeql.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 68a01d62c9..be0b4ec9f0 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -19,6 +19,7 @@ on: - checks_requested jobs: analyze: + if: ${{ github.event_name == 'pull_request' }} name: Analyze strategy: fail-fast: false