From a9305c4c739f4d91a3d3a92c0b6d4949404a36c5 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 12 Aug 2022 15:08:47 +1000 Subject: [PATCH] Add Cygwin (on windows-2019) test target. In addition to installing the requisite Cygwin packages, we also need to explicitly invoke "sh" for steps that run other scripts since the runner environment doesn't understand #! paths. --- .github/configs | 7 +++++-- .github/setup_ci.sh | 7 +++++++ .github/workflows/c-cpp.yml | 18 +++++++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.github/configs b/.github/configs index a853c6329..21bdf24c4 100755 --- a/.github/configs +++ b/.github/configs @@ -255,10 +255,13 @@ case "${TARGET_HOST}" in ;; esac -# Unless specified otherwise, build without OpenSSL on Mac OS since -# modern versions don't ship with libcrypto. case "`./config.guess`" in +*cygwin) + SUDO="" + ;; *-darwin*) + # Unless specified otherwise, build without OpenSSL on Mac OS since + # modern versions don't ship with libcrypto. LIBCRYPTOFLAGS="--without-openssl" TEST_TARGET=t-exec ;; diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh index 7dec34bee..b0657bd0c 100755 --- a/.github/setup_ci.sh +++ b/.github/setup_ci.sh @@ -3,6 +3,13 @@ . .github/configs $@ case "`./config.guess`" in +*cygwin) + echo Setting CYGWIN sustem environment variable. + setx CYGWIN "binmode" + id + chmod -R go-rw /cygdrive/d/a + umask 077 + ;; *-darwin*) brew install automake exit 0 diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index e79e3bc98..03d6a5190 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: # First we test all OSes in the default configuration. - os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12] + os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019] configs: [default] # Then we include any extra configs we want to test for specific VMs. # Valgrind slows things down quite a bit, so start them first. @@ -79,13 +79,21 @@ jobs: - { os: macos-12, configs: pam } runs-on: ${{ matrix.os }} steps: + - name: set cygwin git params + if: ${{ matrix.configs }} == 'windows-2019' + run: git config --global core.autocrlf input + - name: install cygwin + if: ${{ matrix.configs }} == 'windows-2019' + uses: cygwin/cygwin-install-action@master + with: + packages: autoconf, automake, cygwin-devel, gcc-core, make, openssl-devel, zlib-devel - uses: actions/checkout@v2 - name: setup CI system - run: ./.github/setup_ci.sh ${{ matrix.configs }} + run: sh ./.github/setup_ci.sh ${{ matrix.configs }} - name: autoreconf - run: autoreconf + run: sh -c autoreconf - name: configure - run: ./.github/configure.sh ${{ matrix.configs }} + run: sh ./.github/configure.sh ${{ matrix.configs }} - name: save config uses: actions/upload-artifact@v2 with: @@ -96,7 +104,7 @@ jobs: - name: make run: make -j2 - name: make tests - run: ./.github/run_test.sh ${{ matrix.configs }} + run: sh ./.github/run_test.sh ${{ matrix.configs }} env: TEST_SSH_UNSAFE_PERMISSIONS: 1 TEST_SSH_HOSTBASED_AUTH: yes