Switch to GitHub Actions for CI.
diff --git a/.github/workflows/quick-test.yml b/.github/workflows/quick-test.yml
new file mode 100644
index 0000000..0190f1b
--- /dev/null
+++ b/.github/workflows/quick-test.yml
@@ -0,0 +1,104 @@
+name: Quick Tests
+
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+
+jobs:
+ Linux:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ compiler: [g++-5, g++-8, clang-4.0, clang-9]
+ steps:
+ - uses: actions/checkout@v2
+ - name: install dependencies
+ run: |
+ export DEBIAN_FRONTEND=noninteractive
+ sudo apt-get install -y build-essential git zlib1g-dev cmake libssl-dev ${{ matrix.compiler }}
+ - name: super-test
+ run: |
+ ./super-test.sh quick ${{ matrix.compiler }}
+ MacOS:
+ runs-on: macos-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - uses: actions/checkout@v2
+ - name: install dependencies
+ run: |
+ brew install autoconf automake libtool pkg-config
+ - name: super-test
+ run: |
+ ./super-test.sh quick
+ MSVC:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: ['windows-2016', 'windows-latest']
+ include:
+ - os: windows-2016
+ target: 'Visual Studio 15 2017'
+ - os: windows-latest
+ target: 'Visual Studio 16 2019'
+ steps:
+ - uses: actions/checkout@v2
+ - name: Build and test
+ shell: cmd
+ run: |
+ echo "Building Cap'n Proto with ${{ matrix.target }}"
+ cmake -Hc++ -Bbuild-output -G "${{ matrix.target }}" -DCMAKE_INSTALL_PREFIX=%CD%\capnproto-c++-install
+ cmake --build build-output --config debug --target install
+
+ echo "Building Cap'n Proto samples with ${{ matrix.target }}"
+ cmake -Hc++/samples -Bbuild-output-samples -G "${{ matrix.target }}" -DCMAKE_PREFIX_PATH=%CD%\capnproto-c++-install
+ cmake --build build-output-samples --config debug
+
+ cd build-output\src
+ ctest -V -C debug
+ MinGW:
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - uses: actions/checkout@v2
+ - name: Build and test
+ shell: cmd
+ run: |
+ echo "Building Cap'n Proto with MinGW"
+ cmake -Hc++ -Bbuild-output -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=%CD%\capnproto-c++-install -DCMAKE_SH="CMAKE_SH-NOTFOUND"
+ cmake --build build-output --target install -- -j2
+
+ echo "Building Cap'n Proto samples with MinGW"
+ cmake -Hc++/samples -Bbuild-output-samples -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=debug -DCMAKE_PREFIX_PATH=%CD%\capnproto-c++-install -DCMAKE_SH="CMAKE_SH-NOTFOUND"
+ cmake --build build-output-samples
+
+ cd build-output\src
+ ctest -V -C debug
+ Cygwin:
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - run: git config --global core.autocrlf false
+ - uses: actions/checkout@v2
+ # TODO(someday): If we could cache the Cygwin installation we wouldn't have to spend three
+ # minutes installing it for every build. Unfortuntaley, actions/cache@v1 does not preserve
+ # DOS file attributes, which corrupts the Cygwin install. In particular, Cygwin marks
+ # symlinks with the "DOS SYSTEM" attribute. We could cache just the downloaded packages,
+ # but it turns out that only saves a couple seconds; most of the time is spend unpacking.
+ - name: Install Cygwin
+ run: |
+ choco config get cacheLocation
+ choco install --no-progress cygwin
+ - name: Install Cygwin additional packages
+ shell: cmd
+ run: |
+ C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -l C:/tools/cygwin/packages -s http://mirrors.kernel.org/sourceware/cygwin/ -P autoconf,automake,libtool,gcc,gcc-g++,binutils,libssl-devel,make,zlib-devel,pkg-config,cmake,xxd
+ - name: Build and test
+ shell: cmd
+ run: |
+ C:\tools\cygwin\bin\bash -lc 'export PATH=/usr/local/bin:/usr/bin:/bin; cd /cygdrive/d/a/capnproto/capnproto; ./super-test.sh quick'