summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@dtucker.net>2022-08-12 15:08:47 +1000
committerDarren Tucker <dtucker@dtucker.net>2022-08-19 15:08:57 +1000
commita9305c4c739f4d91a3d3a92c0b6d4949404a36c5 (patch)
treeab242f378d4a790d2b2de6fcb6f1c8d5a5cc8c1d
parent5062ad48814b06162511c4f5924a33d97b6b2566 (diff)
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.
-rwxr-xr-x.github/configs7
-rwxr-xr-x.github/setup_ci.sh7
-rw-r--r--.github/workflows/c-cpp.yml18
3 files changed, 25 insertions, 7 deletions
diff --git a/.github/configs b/.github/configs
index a853c632..21bdf24c 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 7dec34be..b0657bd0 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 e79e3bc9..03d6a519 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