From 8e10188618deb6903115446ba24bb9dae9973a6b Mon Sep 17 00:00:00 2001 From: Adrien Ferrand Date: Mon, 26 Oct 2020 22:00:38 +0100 Subject: [PATCH] Focus on docker build/test --- .../templates/jobs/packaging-jobs.yml | 338 +++++++++--------- .../stages/test-and-package-stage.yml | 4 +- 2 files changed, 171 insertions(+), 171 deletions(-) diff --git a/.azure-pipelines/templates/jobs/packaging-jobs.yml b/.azure-pipelines/templates/jobs/packaging-jobs.yml index f4039987c..d6dc00eaf 100644 --- a/.azure-pipelines/templates/jobs/packaging-jobs.yml +++ b/.azure-pipelines/templates/jobs/packaging-jobs.yml @@ -50,172 +50,172 @@ jobs: do docker run --rm "${DOCKER_IMAGE}" plugins --prepare done displayName: Run integration tests for Docker images - - job: installer_build - pool: - vmImage: vs2017-win2016 - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: 3.7 - architecture: x86 - addToPath: true - - script: python windows-installer/construct.py - displayName: Build Certbot installer - - task: CopyFiles@2 - inputs: - sourceFolder: $(System.DefaultWorkingDirectory)/windows-installer/build/nsis - contents: '*.exe' - targetFolder: $(Build.ArtifactStagingDirectory) - - task: PublishPipelineArtifact@1 - inputs: - path: $(Build.ArtifactStagingDirectory) - # If we change the artifact's name, it should also be changed in tools/create_github_release.py - artifact: windows-installer - displayName: Publish Windows installer - - job: installer_run - dependsOn: installer_build - strategy: - matrix: - win2019: - imageName: windows-2019 - win2016: - imageName: vs2017-win2016 - pool: - vmImage: $(imageName) - steps: - - powershell: | - if ($PSVersionTable.PSVersion.Major -ne 5) { - throw "Powershell version is not 5.x" - } - condition: eq(variables['imageName'], 'vs2017-win2016') - displayName: Check Powershell 5.x is used in vs2017-win2016 - - task: UsePythonVersion@0 - inputs: - versionSpec: 3.8 - addToPath: true - - task: DownloadPipelineArtifact@2 - inputs: - artifact: windows-installer - path: $(Build.SourcesDirectory)/bin - displayName: Retrieve Windows installer - # pip 9.0 provided by pipstrap is not able to resolve properly the pywin32 dependency - # required by certbot-ci: as a temporary workaround until pipstrap is updated, we install - # a recent version of pip, but we also to disable the isolated feature as described in - # https://github.com/certbot/certbot/issues/8256 - - script: | - py -3 -m venv venv - venv\Scripts\python -m pip install pip==20.2.3 setuptools==50.3.0 wheel==0.35.1 - venv\Scripts\python tools\pip_install.py -e certbot-ci - env: - PIP_NO_BUILD_ISOLATION: no - displayName: Prepare Certbot-CI - - script: | - set PATH=%ProgramFiles(x86)%\Certbot\bin;%PATH% - venv\Scripts\python -m pytest certbot-ci\windows_installer_integration_tests --allow-persistent-changes --installer-path $(Build.SourcesDirectory)\bin\certbot-beta-installer-win32.exe - displayName: Run windows installer integration tests - - script: | - 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} - 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 letsencrypt-auto-source/pieces/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 letsencrypt-auto-source/pieces/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: installer_build +# pool: +# vmImage: vs2017-win2016 +# steps: +# - task: UsePythonVersion@0 +# inputs: +# versionSpec: 3.7 +# architecture: x86 +# addToPath: true +# - script: python windows-installer/construct.py +# displayName: Build Certbot installer +# - task: CopyFiles@2 +# inputs: +# sourceFolder: $(System.DefaultWorkingDirectory)/windows-installer/build/nsis +# contents: '*.exe' +# targetFolder: $(Build.ArtifactStagingDirectory) +# - task: PublishPipelineArtifact@1 +# inputs: +# path: $(Build.ArtifactStagingDirectory) +# # If we change the artifact's name, it should also be changed in tools/create_github_release.py +# artifact: windows-installer +# displayName: Publish Windows installer +# - job: installer_run +# dependsOn: installer_build +# strategy: +# matrix: +# win2019: +# imageName: windows-2019 +# win2016: +# imageName: vs2017-win2016 +# pool: +# vmImage: $(imageName) +# steps: +# - powershell: | +# if ($PSVersionTable.PSVersion.Major -ne 5) { +# throw "Powershell version is not 5.x" +# } +# condition: eq(variables['imageName'], 'vs2017-win2016') +# displayName: Check Powershell 5.x is used in vs2017-win2016 +# - task: UsePythonVersion@0 +# inputs: +# versionSpec: 3.8 +# addToPath: true +# - task: DownloadPipelineArtifact@2 +# inputs: +# artifact: windows-installer +# path: $(Build.SourcesDirectory)/bin +# displayName: Retrieve Windows installer +# # pip 9.0 provided by pipstrap is not able to resolve properly the pywin32 dependency +# # required by certbot-ci: as a temporary workaround until pipstrap is updated, we install +# # a recent version of pip, but we also to disable the isolated feature as described in +# # https://github.com/certbot/certbot/issues/8256 +# - script: | +# py -3 -m venv venv +# venv\Scripts\python -m pip install pip==20.2.3 setuptools==50.3.0 wheel==0.35.1 +# venv\Scripts\python tools\pip_install.py -e certbot-ci +# env: +# PIP_NO_BUILD_ISOLATION: no +# displayName: Prepare Certbot-CI +# - script: | +# set PATH=%ProgramFiles(x86)%\Certbot\bin;%PATH% +# venv\Scripts\python -m pytest certbot-ci\windows_installer_integration_tests --allow-persistent-changes --installer-path $(Build.SourcesDirectory)\bin\certbot-beta-installer-win32.exe +# displayName: Run windows installer integration tests +# - script: | +# 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} +# 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 letsencrypt-auto-source/pieces/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 letsencrypt-auto-source/pieces/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..867277c8d 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