From f8e2d652e19368d7c6f3faaefb6b7b21a2152367 Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Fri, 15 Jul 2022 17:34:09 -0700 Subject: [PATCH] ci: Test upgrades from the minimum of each major version, not the max. --- .github/workflows/production-suite.yml | 14 +++++++------- docs/subsystems/release-checklist.md | 13 ++++--------- tools/ci/Dockerfile.prod | 11 +++++++---- tools/ci/build-docker-images | 3 --- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/.github/workflows/production-suite.yml b/.github/workflows/production-suite.yml index a65131fefe..afdadb860a 100644 --- a/.github/workflows/production-suite.yml +++ b/.github/workflows/production-suite.yml @@ -213,16 +213,16 @@ jobs: fail-fast: false matrix: include: - # Docker images are built from 'tools/ci/Dockerfile'; the comments at + # Docker images are built from 'tools/ci/Dockerfile.prod'; the comments at # the top explain how to build and upload these images. - - docker_image: zulip/ci:focal-3.4 - name: 3.4 Version Upgrade + - docker_image: zulip/ci:focal-3.2 + name: 3.2 Version Upgrade os: focal - - docker_image: zulip/ci:bullseye-4.11 - name: 4.11 Version Upgrade + - docker_image: zulip/ci:bullseye-4.2 + name: 4.2 Version Upgrade os: bullseye - - docker_image: zulip/ci:bullseye-5.3 - name: 5.3 Version Upgrade + - docker_image: zulip/ci:bullseye-5.0 + name: 5.0 Version Upgrade os: bullseye name: ${{ matrix.name }} diff --git a/docs/subsystems/release-checklist.md b/docs/subsystems/release-checklist.md index 50031eea72..35a65e30b8 100644 --- a/docs/subsystems/release-checklist.md +++ b/docs/subsystems/release-checklist.md @@ -78,15 +78,6 @@ preparing a new release. - The DigitalOcean one-click image will report in an internal channel once it is built, and how to test it. Verify it, then publish it publish it to DigitalOcean marketplace. -- Update the CI targets: - - _Major releases only:_ In all of the following steps, _also_ - bump up the series that are being tested. - - Update the version in `tools/ci/build-docker-images` - - Run `tools/ci/build-docker-images` - - Push at least the latest of those, e.g. using `docker push zulip/ci:bullseye-4.11`; update the others at your discretion. - - Update the `docker_image` in the `production_upgrade` step of - `.github/workflows/production-suite.yml`. - - Commit those two changes in a PR. - _Major releases only:_ - Create a release branch (e.g. `4.x`). - On the release branch, update `ZULIP_VERSION` in `version.py` to @@ -101,6 +92,10 @@ preparing a new release. - Update Transifex to add the new `4.x` style release branch resources and archive the previous release branch's resources with the "Translations can't translate this resource" setting. + - Add a new CI production upgrade target: + - Build a docker image: `cd tools/ci && docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bullseye --build-arg=VERSION=5.0 --tag=zulip/ci:bullseye-5.0 && docker push zulip/ci:bullseye-5.0` + - Add a new line to the `production_upgrade` matrix in + `.github/workflows/production-suite.yml`. - _Minor releases only (e.g. 3.2):_ - On the release branch, update `ZULIP_VERSION` to the present release with a `+git` suffix, e.g. `3.2+git`. diff --git a/tools/ci/Dockerfile.prod b/tools/ci/Dockerfile.prod index 37207179c0..6301baff45 100644 --- a/tools/ci/Dockerfile.prod +++ b/tools/ci/Dockerfile.prod @@ -1,7 +1,10 @@ -# To build these production upgrade test images, say an Ubuntu 20.04 Focal system -# preinstalled with Zulip 3.4: -# docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:focal --build-arg=VERSION=3.4 --tag=zulip/ci:focal-3.4 -# docker push zulip/ci:focal-3.4 +# To build these production upgrade test images, say an Debian 11 Bullseye system +# preinstalled with Zulip 5.0: +# docker build . -f Dockerfile.prod \ +# --build-arg=BASE_IMAGE=zulip/ci:bullseye \ +# --build-arg=VERSION=5.0 \ +# --tag=zulip/ci:focal-5.0 +# docker push zulip/ci:focal-5.0 ARG BASE_IMAGE FROM $BASE_IMAGE diff --git a/tools/ci/build-docker-images b/tools/ci/build-docker-images index e343f7a796..a3aa57c81a 100755 --- a/tools/ci/build-docker-images +++ b/tools/ci/build-docker-images @@ -4,6 +4,3 @@ cd "$(dirname "${BASH_SOURCE[0]}")" docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal docker build . --build-arg=BASE_IMAGE=ubuntu:22.04 --pull --tag=zulip/ci:jammy docker build . --build-arg=BASE_IMAGE=debian:11 --pull --tag=zulip/ci:bullseye -docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:focal --build-arg=VERSION=3.4 --tag=zulip/ci:focal-3.4 -docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bullseye --build-arg=VERSION=4.11 --tag=zulip/ci:bullseye-4.11 -docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bullseye --build-arg=VERSION=5.3 --tag=zulip/ci:bullseye-5.3