From c52be1eeb52f12409ff225af5e2e5dc697532654 Mon Sep 17 00:00:00 2001 From: Adrien Ferrand Date: Wed, 6 Jan 2021 01:14:45 +0100 Subject: [PATCH] Focus on installer tests --- .../templates/jobs/packaging-jobs.yml | 306 +++++++++--------- .../stages/test-and-package-stage.yml | 4 +- 2 files changed, 155 insertions(+), 155 deletions(-) diff --git a/.azure-pipelines/templates/jobs/packaging-jobs.yml b/.azure-pipelines/templates/jobs/packaging-jobs.yml index 28255919f..d256a4ca3 100644 --- a/.azure-pipelines/templates/jobs/packaging-jobs.yml +++ b/.azure-pipelines/templates/jobs/packaging-jobs.yml @@ -1,55 +1,55 @@ jobs: - - job: docker_build - pool: - vmImage: ubuntu-18.04 - strategy: - matrix: - amd64: - DOCKER_ARCH: amd64 - # Do not run the heavy non-amd64 builds for test branches - ${{ if not(startsWith(variables['Build.SourceBranchName'], 'test-')) }}: - arm32v6: - DOCKER_ARCH: arm32v6 - arm64v8: - DOCKER_ARCH: arm64v8 - steps: - - bash: set -e && tools/docker/build.sh $(dockerTag) $DOCKER_ARCH - displayName: Build the Docker images - # We don't filter for the Docker Hub organization to continue to allow - # easy testing of these scripts on forks. - - bash: | - set -e - DOCKER_IMAGES=$(docker images --filter reference='*/certbot' --filter reference='*/dns-*' --format '{{.Repository}}') - docker save --output images.tar $DOCKER_IMAGES - displayName: Save the Docker images - # If the name of the tar file or artifact changes, the deploy stage will - # also need to be updated. - - bash: set -e && mv images.tar $(Build.ArtifactStagingDirectory) - displayName: Prepare Docker artifact - - task: PublishPipelineArtifact@1 - inputs: - path: $(Build.ArtifactStagingDirectory) - artifact: docker_$(DOCKER_ARCH) - displayName: Store Docker artifact - - job: docker_run - dependsOn: docker_build - pool: - vmImage: ubuntu-18.04 - steps: - - task: DownloadPipelineArtifact@2 - inputs: - artifact: docker_amd64 - path: $(Build.SourcesDirectory) - displayName: Retrieve Docker images - - bash: set -e && docker load --input $(Build.SourcesDirectory)/images.tar - displayName: Load Docker images - - bash: | - set -ex - DOCKER_IMAGES=$(docker images --filter reference='*/certbot' --filter reference='*/dns-*' --format '{{.Repository}}:{{.Tag}}') - for DOCKER_IMAGE in ${DOCKER_IMAGES} - do docker run --rm "${DOCKER_IMAGE}" plugins --prepare - done - displayName: Run integration tests for Docker images + # - job: docker_build + # pool: + # vmImage: ubuntu-18.04 + # strategy: + # matrix: + # amd64: + # DOCKER_ARCH: amd64 + # # Do not run the heavy non-amd64 builds for test branches + # ${{ if not(startsWith(variables['Build.SourceBranchName'], 'test-')) }}: + # arm32v6: + # DOCKER_ARCH: arm32v6 + # arm64v8: + # DOCKER_ARCH: arm64v8 + # steps: + # - bash: set -e && tools/docker/build.sh $(dockerTag) $DOCKER_ARCH + # displayName: Build the Docker images + # # We don't filter for the Docker Hub organization to continue to allow + # # easy testing of these scripts on forks. + # - bash: | + # set -e + # DOCKER_IMAGES=$(docker images --filter reference='*/certbot' --filter reference='*/dns-*' --format '{{.Repository}}') + # docker save --output images.tar $DOCKER_IMAGES + # displayName: Save the Docker images + # # If the name of the tar file or artifact changes, the deploy stage will + # # also need to be updated. + # - bash: set -e && mv images.tar $(Build.ArtifactStagingDirectory) + # displayName: Prepare Docker artifact + # - task: PublishPipelineArtifact@1 + # inputs: + # path: $(Build.ArtifactStagingDirectory) + # artifact: docker_$(DOCKER_ARCH) + # displayName: Store Docker artifact + # - job: docker_run + # dependsOn: docker_build + # pool: + # vmImage: ubuntu-18.04 + # steps: + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifact: docker_amd64 + # path: $(Build.SourcesDirectory) + # displayName: Retrieve Docker images + # - bash: set -e && docker load --input $(Build.SourcesDirectory)/images.tar + # displayName: Load Docker images + # - bash: | + # set -ex + # DOCKER_IMAGES=$(docker images --filter reference='*/certbot' --filter reference='*/dns-*' --format '{{.Repository}}:{{.Tag}}') + # for DOCKER_IMAGE in ${DOCKER_IMAGES} + # do docker run --rm "${DOCKER_IMAGE}" plugins --prepare + # done + # displayName: Run integration tests for Docker images - job: installer_build pool: vmImage: vs2017-win2016 @@ -113,105 +113,105 @@ jobs: set PATH=%ProgramFiles(x86)%\Certbot\bin;%PATH% venv\Scripts\python -m pytest certbot-ci\certbot_integration_tests\certbot_tests -n 4 displayName: Run certbot integration tests - - job: snaps_build - pool: - vmImage: ubuntu-18.04 - timeoutInMinutes: 0 - variables: - # Do not run the heavy non-amd64 builds for test branches - ${{ if not(startsWith(variables['Build.SourceBranchName'], 'test-')) }}: - ARCHS: amd64 arm64 armhf - ${{ if startsWith(variables['Build.SourceBranchName'], 'test-') }}: - ARCHS: amd64 - steps: - - script: | - set -e - sudo apt-get update - sudo apt-get install -y --no-install-recommends snapd - sudo snap install --classic snapcraft - displayName: Install dependencies - - task: UsePythonVersion@0 - inputs: - versionSpec: 3.8 - addToPath: true - - task: DownloadSecureFile@1 - name: credentials - inputs: - secureFile: launchpad-credentials - - script: | - set -e - git config --global user.email "$(Build.RequestedForEmail)" - git config --global user.name "$(Build.RequestedFor)" - mkdir -p ~/.local/share/snapcraft/provider/launchpad - cp $(credentials.secureFilePath) ~/.local/share/snapcraft/provider/launchpad/credentials - python3 tools/snap/build_remote.py ALL --archs ${ARCHS} --timeout 19800 - displayName: Build snaps - - script: | - set -e - mv *.snap $(Build.ArtifactStagingDirectory) - mv certbot-dns-*/*.snap $(Build.ArtifactStagingDirectory) - displayName: Prepare artifacts - - task: PublishPipelineArtifact@1 - inputs: - path: $(Build.ArtifactStagingDirectory) - artifact: snaps - displayName: Store snaps artifacts - - job: snap_run - dependsOn: snaps_build - pool: - vmImage: ubuntu-18.04 - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: 3.8 - addToPath: true - - script: | - set -e - sudo apt-get update - sudo apt-get install -y --no-install-recommends nginx-light snapd - python3 -m venv venv - venv/bin/python tools/pipstrap.py - venv/bin/python tools/pip_install.py -U tox - displayName: Install dependencies - - task: DownloadPipelineArtifact@2 - inputs: - artifact: snaps - path: $(Build.SourcesDirectory)/snap - displayName: Retrieve Certbot snaps - - script: | - set -e - sudo snap install --dangerous --classic snap/certbot_*_amd64.snap - displayName: Install Certbot snap - - script: | - set -e - venv/bin/python -m tox -e integration-external,apacheconftest-external-with-pebble - displayName: Run tox - - job: snap_dns_run - dependsOn: snaps_build - pool: - vmImage: ubuntu-18.04 - steps: - - script: | - set -e - sudo apt-get update - sudo apt-get install -y --no-install-recommends snapd - displayName: Install dependencies - - task: UsePythonVersion@0 - inputs: - versionSpec: 3.8 - addToPath: true - - task: DownloadPipelineArtifact@2 - inputs: - artifact: snaps - path: $(Build.SourcesDirectory)/snap - displayName: Retrieve Certbot snaps - - script: | - set -e - python3 -m venv venv - venv/bin/python tools/pipstrap.py - venv/bin/python tools/pip_install.py -e certbot-ci - displayName: Prepare Certbot-CI - - script: | - set -e - sudo -E venv/bin/pytest certbot-ci/snap_integration_tests/dns_tests --allow-persistent-changes --snap-folder $(Build.SourcesDirectory)/snap --snap-arch amd64 - displayName: Test DNS plugins snaps + # - job: snaps_build + # pool: + # vmImage: ubuntu-18.04 + # timeoutInMinutes: 0 + # variables: + # # Do not run the heavy non-amd64 builds for test branches + # ${{ if not(startsWith(variables['Build.SourceBranchName'], 'test-')) }}: + # ARCHS: amd64 arm64 armhf + # ${{ if startsWith(variables['Build.SourceBranchName'], 'test-') }}: + # ARCHS: amd64 + # steps: + # - script: | + # set -e + # sudo apt-get update + # sudo apt-get install -y --no-install-recommends snapd + # sudo snap install --classic snapcraft + # displayName: Install dependencies + # - task: UsePythonVersion@0 + # inputs: + # versionSpec: 3.8 + # addToPath: true + # - task: DownloadSecureFile@1 + # name: credentials + # inputs: + # secureFile: launchpad-credentials + # - script: | + # set -e + # git config --global user.email "$(Build.RequestedForEmail)" + # git config --global user.name "$(Build.RequestedFor)" + # mkdir -p ~/.local/share/snapcraft/provider/launchpad + # cp $(credentials.secureFilePath) ~/.local/share/snapcraft/provider/launchpad/credentials + # python3 tools/snap/build_remote.py ALL --archs ${ARCHS} --timeout 19800 + # displayName: Build snaps + # - script: | + # set -e + # mv *.snap $(Build.ArtifactStagingDirectory) + # mv certbot-dns-*/*.snap $(Build.ArtifactStagingDirectory) + # displayName: Prepare artifacts + # - task: PublishPipelineArtifact@1 + # inputs: + # path: $(Build.ArtifactStagingDirectory) + # artifact: snaps + # displayName: Store snaps artifacts + # - job: snap_run + # dependsOn: snaps_build + # pool: + # vmImage: ubuntu-18.04 + # steps: + # - task: UsePythonVersion@0 + # inputs: + # versionSpec: 3.8 + # addToPath: true + # - script: | + # set -e + # sudo apt-get update + # sudo apt-get install -y --no-install-recommends nginx-light snapd + # python3 -m venv venv + # venv/bin/python tools/pipstrap.py + # venv/bin/python tools/pip_install.py -U tox + # displayName: Install dependencies + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifact: snaps + # path: $(Build.SourcesDirectory)/snap + # displayName: Retrieve Certbot snaps + # - script: | + # set -e + # sudo snap install --dangerous --classic snap/certbot_*_amd64.snap + # displayName: Install Certbot snap + # - script: | + # set -e + # venv/bin/python -m tox -e integration-external,apacheconftest-external-with-pebble + # displayName: Run tox + # - job: snap_dns_run + # dependsOn: snaps_build + # pool: + # vmImage: ubuntu-18.04 + # steps: + # - script: | + # set -e + # sudo apt-get update + # sudo apt-get install -y --no-install-recommends snapd + # displayName: Install dependencies + # - task: UsePythonVersion@0 + # inputs: + # versionSpec: 3.8 + # addToPath: true + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifact: snaps + # path: $(Build.SourcesDirectory)/snap + # displayName: Retrieve Certbot snaps + # - script: | + # set -e + # python3 -m venv venv + # venv/bin/python tools/pipstrap.py + # venv/bin/python tools/pip_install.py -e certbot-ci + # displayName: Prepare Certbot-CI + # - script: | + # set -e + # sudo -E venv/bin/pytest certbot-ci/snap_integration_tests/dns_tests --allow-persistent-changes --snap-folder $(Build.SourcesDirectory)/snap --snap-arch amd64 + # displayName: Test DNS plugins snaps diff --git a/.azure-pipelines/templates/stages/test-and-package-stage.yml b/.azure-pipelines/templates/stages/test-and-package-stage.yml index 26010644d..866bf804b 100644 --- a/.azure-pipelines/templates/stages/test-and-package-stage.yml +++ b/.azure-pipelines/templates/stages/test-and-package-stage.yml @@ -1,6 +1,6 @@ stages: - stage: TestAndPackage jobs: - - template: ../jobs/standard-tests-jobs.yml - - template: ../jobs/extended-tests-jobs.yml + # - template: ../jobs/standard-tests-jobs.yml + # - template: ../jobs/extended-tests-jobs.yml - template: ../jobs/packaging-jobs.yml