From 7ce3823547578a3b083085744c1fea39237197a2 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 23 Sep 2025 22:12:19 +1000 Subject: [PATCH] Merge all putty tests into a single test. The lets us reuse the built OpenSSH binaries and replaces 12*4min of tests with a single 14min one. --- .github/install_putty.sh | 37 +++++++++++++++++++++++++++++++++++++ .github/run_test.sh | 11 +++++++++++ .github/setup_ci.sh | 22 ++-------------------- .github/workflows/c-cpp.yml | 15 +-------------- 4 files changed, 51 insertions(+), 34 deletions(-) create mode 100755 .github/install_putty.sh diff --git a/.github/install_putty.sh b/.github/install_putty.sh new file mode 100755 index 000000000..6d6d0ad49 --- /dev/null +++ b/.github/install_putty.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +ver="$1" + +echo +echo -------------------------------------- +echo Installing PuTTY version ${ver} +echo -------------------------------------- + +cd /tmp + +case "${ver}" in +snapshot) + tarball=putty.tar.gz + url=https://tartarus.org/~simon/putty-snapshots/${tarball} + ;; +*) + tarball=putty-${ver}.tar.gz + url=https://the.earth.li/~sgtatham/putty/${ver}/${tarball} + ;; +esac + +if [ ! -f ${tarball} ]; then + wget -q ${url} +fi + +mkdir -p /tmp/puttybuild +cd /tmp/puttybuild + +tar xfz /tmp/${tarball} && cd putty-* +if [ -f CMakeLists.txt ]; then + cmake . && cmake --build . -j4 && sudo cmake --build . --target install +else + ./configure && make -j4 && sudo make install +fi +sudo rm -rf /tmp/puttybuild +/usr/local/bin/plink -V diff --git a/.github/run_test.sh b/.github/run_test.sh index bd6fb7b7b..aac9ce579 100755 --- a/.github/run_test.sh +++ b/.github/run_test.sh @@ -35,6 +35,17 @@ if [ ! -z "${env}" ]; then env="env${env}" fi +if [ "$1" = "putty-versions" ]; then + for ver in 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 \ + 0.81 0.82 0.83 snapshot; do + .github/install_putty.sh "${ver}" + ${env} make ${TEST_TARGET} \ + SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}" + done + + exit 0 +fi + if [ -z "${LTESTS}" ]; then ${env} make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}" else diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh index 10ff77bad..c90969627 100755 --- a/.github/setup_ci.sh +++ b/.github/setup_ci.sh @@ -164,7 +164,7 @@ for TARGET in $TARGETS; do PACKAGES="${PACKAGES} cmake ninja-build" ;; putty-*) - INSTALL_PUTTY=$(echo "${TARGET}" | cut -f2 -d-) + INSTALL_PUTTY=0.83 PACKAGES="${PACKAGES} cmake" ;; valgrind*) @@ -273,25 +273,7 @@ if [ ! -z "${INSTALL_ZLIB}" ]; then fi if [ ! -z "${INSTALL_PUTTY}" ]; then - ver="${INSTALL_PUTTY}" - case "${INSTALL_PUTTY}" in - snapshot) - tarball=putty.tar.gz - (cd /tmp && wget https://tartarus.org/~simon/putty-snapshots/${tarball}) - ;; - *) - tarball=putty-${ver}.tar.gz - (cd /tmp && wget https://the.earth.li/~sgtatham/putty/${ver}/${tarball}) - ;; - esac - (cd ${HOME} && tar xfz /tmp/${tarball} && cd putty-* - if [ -f CMakeLists.txt ]; then - cmake . && cmake --build . && sudo cmake --build . --target install - else - ./configure && make && sudo make install - fi - ) - /usr/local/bin/plink -V + .github/install_putty.sh "${INSTALL_PUTTY}" fi # If we're running on an ephemeral VM, set a random password and set diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 0ae83ccdb..a479fd2f1 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -103,20 +103,7 @@ jobs: - { target: ubuntu-latest, config: openssl-3.4 } # stable branch - { target: ubuntu-latest, config: openssl-3.5 } # stable branch - { target: ubuntu-latest, config: openssl-3.6 } # stable branch - - { target: ubuntu-latest, config: putty-0.71 } - - { target: ubuntu-latest, config: putty-0.72 } - - { target: ubuntu-latest, config: putty-0.73 } - - { target: ubuntu-latest, config: putty-0.74 } - - { target: ubuntu-latest, config: putty-0.75 } - - { target: ubuntu-latest, config: putty-0.76 } - - { target: ubuntu-latest, config: putty-0.77 } - - { target: ubuntu-latest, config: putty-0.78 } - - { target: ubuntu-latest, config: putty-0.79 } - - { target: ubuntu-latest, config: putty-0.80 } - - { target: ubuntu-latest, config: putty-0.81 } - - { target: ubuntu-latest, config: putty-0.82 } - - { target: ubuntu-latest, config: putty-0.83 } - - { target: ubuntu-latest, config: putty-snapshot } + - { target: ubuntu-latest, config: putty-versions } - { target: ubuntu-latest, config: zlib-develop } - { target: ubuntu-latest, config: tcmalloc } - { target: ubuntu-latest, config: musl } -- 2.47.3