From f251a13f322e10c530897be31aa07a1199061f10 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Thu, 3 Mar 2022 10:31:03 -0800 Subject: Remove Windows 2016 environment, generate 64 bit installer (#9202) * Remove Windows 2016 environment, generate 64 bit installer * Add note to changelog * Use win_amd64 as installer suffix * Bump PYTHON_BITNESS to 64 * Require 64 bit Windows for the installer_build job * Update certbot install path * update windows test name * Base installer suffix on PYTHON_BITNESS again * Update changelog to request users uninstall old version --- .azure-pipelines/templates/jobs/packaging-jobs.yml | 18 +++++------------- .../templates/jobs/standard-tests-jobs.yml | 6 +++--- .azure-pipelines/templates/stages/changelog-stage.yml | 2 +- .../windows_installer_integration_tests/conftest.py | 4 ++-- certbot/CHANGELOG.md | 4 +++- tools/finish_release.py | 2 +- tox.ini | 4 ++-- windows-installer/windows_installer/construct.py | 4 ++-- 8 files changed, 19 insertions(+), 25 deletions(-) diff --git a/.azure-pipelines/templates/jobs/packaging-jobs.yml b/.azure-pipelines/templates/jobs/packaging-jobs.yml index cfd817c8b..8090647a7 100644 --- a/.azure-pipelines/templates/jobs/packaging-jobs.yml +++ b/.azure-pipelines/templates/jobs/packaging-jobs.yml @@ -55,12 +55,12 @@ jobs: displayName: Run integration tests for Docker images - job: installer_build pool: - vmImage: vs2017-win2016 + vmImage: windows-2019 steps: - task: UsePythonVersion@0 inputs: versionSpec: 3.9 - architecture: x86 + architecture: x64 addToPath: true - script: | python -m venv venv @@ -87,17 +87,9 @@ jobs: 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.9 @@ -115,11 +107,11 @@ jobs: 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 + set PATH=%ProgramFiles%\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-win_amd64.exe displayName: Run windows installer integration tests - script: | - set PATH=%ProgramFiles(x86)%\Certbot\bin;%PATH% + set PATH=%ProgramFiles%\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 diff --git a/.azure-pipelines/templates/jobs/standard-tests-jobs.yml b/.azure-pipelines/templates/jobs/standard-tests-jobs.yml index e973fa46a..4deaf4f2b 100644 --- a/.azure-pipelines/templates/jobs/standard-tests-jobs.yml +++ b/.azure-pipelines/templates/jobs/standard-tests-jobs.yml @@ -13,15 +13,15 @@ jobs: PYTHON_VERSION: 3.10 TOXENV: py310-cover windows-py37: - IMAGE_NAME: vs2017-win2016 + IMAGE_NAME: windows-2019 PYTHON_VERSION: 3.7 TOXENV: py37-win windows-py39-cover: - IMAGE_NAME: vs2017-win2016 + IMAGE_NAME: windows-2019 PYTHON_VERSION: 3.9 TOXENV: py39-cover-win windows-integration-certbot: - IMAGE_NAME: vs2017-win2016 + IMAGE_NAME: windows-2019 PYTHON_VERSION: 3.9 TOXENV: integration-certbot linux-oldest-tests-1: diff --git a/.azure-pipelines/templates/stages/changelog-stage.yml b/.azure-pipelines/templates/stages/changelog-stage.yml index 7d089f8d4..524904f17 100644 --- a/.azure-pipelines/templates/stages/changelog-stage.yml +++ b/.azure-pipelines/templates/stages/changelog-stage.yml @@ -3,7 +3,7 @@ stages: jobs: - job: prepare pool: - vmImage: vs2017-win2016 + vmImage: windows-2019 steps: # If we change the output filename from `release_notes.md`, it should also be changed in tools/create_github_release.py - bash: | diff --git a/certbot-ci/windows_installer_integration_tests/conftest.py b/certbot-ci/windows_installer_integration_tests/conftest.py index 3332fc923..c0917013d 100644 --- a/certbot-ci/windows_installer_integration_tests/conftest.py +++ b/certbot-ci/windows_installer_integration_tests/conftest.py @@ -20,9 +20,9 @@ def pytest_addoption(parser): """ parser.addoption('--installer-path', default=os.path.join(ROOT_PATH, 'windows-installer', 'build', - 'nsis', 'certbot-beta-installer-win32.exe'), + 'nsis', 'certbot-beta-installer-win_amd64.exe'), help='set the path of the windows installer to use, default to ' - 'CERTBOT_ROOT_PATH\\windows-installer\\build\\nsis\\certbot-beta-installer-win32.exe') # pylint: disable=line-too-long + 'CERTBOT_ROOT_PATH\\windows-installer\\build\\nsis\\certbot-beta-installer-win_amd64.exe') # pylint: disable=line-too-long parser.addoption('--allow-persistent-changes', action='store_true', help='needs to be set, and confirm that the test will make persistent changes on this machine') # pylint: disable=line-too-long diff --git a/certbot/CHANGELOG.md b/certbot/CHANGELOG.md index 4d2ae2b70..29ccd5913 100644 --- a/certbot/CHANGELOG.md +++ b/certbot/CHANGELOG.md @@ -10,7 +10,9 @@ Certbot adheres to [Semantic Versioning](https://semver.org/). ### Changed -* +* Dropped 32 bit support for the Windows beta installer +* Windows beta installer is now distributed as "certbot-beta-installer-win_amd64.exe". + Users of the Windows beta should uninstall the old version before running this. ### Fixed diff --git a/tools/finish_release.py b/tools/finish_release.py index 097551057..aa224e38f 100755 --- a/tools/finish_release.py +++ b/tools/finish_release.py @@ -135,7 +135,7 @@ def create_github_release(github_access_token, tempdir, version): # Upload windows installer to release print("Uploading windows installer") - release.upload_asset(tempdir + '/windows-installer/certbot-beta-installer-win32.exe') + release.upload_asset(tempdir + '/windows-installer/certbot-beta-installer-win_amd64.exe') release.update_release(release.title, release.body, draft=False) diff --git a/tox.ini b/tox.ini index 03f638c0e..8965b6055 100644 --- a/tox.ini +++ b/tox.ini @@ -26,8 +26,8 @@ source_paths = acme/acme certbot/certbot certbot-apache/certbot_apache certbot-c passenv = CERTBOT_NO_PIN platform = - win: win32 - posix: ^(?!.*win32).*$ + win: win64 + posix: ^(?!.*win64).*$ commands_pre = python {toxinidir}/tools/pipstrap.py commands = !cover-win: {[base]install_and_test} {[base]win_all_packages} diff --git a/windows-installer/windows_installer/construct.py b/windows-installer/windows_installer/construct.py index e9036f08c..85af4ca94 100644 --- a/windows-installer/windows_installer/construct.py +++ b/windows-installer/windows_installer/construct.py @@ -8,7 +8,7 @@ import sys import time PYTHON_VERSION = (3, 9, 7) -PYTHON_BITNESS = 32 +PYTHON_BITNESS = 64 NSIS_VERSION = '3.06.1' @@ -94,7 +94,7 @@ def _generate_pynsist_config(repo_path, build_path): certbot_version = subprocess.check_output([sys.executable, '-c', 'import certbot; print(certbot.__version__)'], universal_newlines=True, cwd=certbot_pkg_path).strip() - # If we change the installer name from `certbot-beta-installer-win32.exe`, it should + # If we change the installer name from `certbot-beta-installer-win_amd64.exe`, it should # also be changed in tools/create_github_release.py with open(installer_cfg_path, 'w') as file_h: file_h.write('''\ -- cgit v1.2.3