Set release branch version to 1.3.0. #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Quick Tests | |
| on: | |
| pull_request: | |
| paths-ignore: | |
| - 'doc/**' | |
| push: | |
| branches: | |
| - master | |
| - 'release-*' | |
| jobs: | |
| Linux-musl: | |
| runs-on: ubuntu-22.04 | |
| # We depend on both clang and libc++. Alpine Linux 3.17 seems to be the first version to include | |
| # a libc++ package (based on LLVM 15), but building capnproto failed when I tried it. | |
| # Alpine Linux 3.18's libc++ package is from LLVM 16, however, and worked out-of-the-box, so | |
| # Clang 16 appears to be the earliest Clang version we can run easily on Alpine Linux. | |
| container: alpine:3.18.2 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: install dependencies | |
| run: apk add autoconf automake bash build-base cmake libtool libucontext-dev linux-headers openssl-dev clang16 libc++-dev | |
| - name: super-test | |
| run: ./super-test.sh quick clang-16 | |
| Linux-old: | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| configuration: | |
| - compiler: g++-9 | |
| - compiler: clang-11 | |
| dependencies: libc++-11-dev libc++abi-11-dev | |
| 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.configuration.compiler }} ${{ matrix.configuration.dependencies }} | |
| - name: super-test | |
| run: | | |
| ./super-test.sh quick ${{ matrix.configuration.compiler }} | |
| Linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| configuration: | |
| - compiler: g++-12 | |
| - compiler: clang-15 | |
| dependencies: libc++-15-dev libc++abi-15-dev | |
| 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.configuration.compiler }} ${{ matrix.configuration.dependencies }} | |
| - name: super-test | |
| run: | | |
| ./super-test.sh quick ${{ matrix.configuration.compiler }} | |
| Linux-lock-tracking: | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: [clang] | |
| features: ["-DKJ_TRACK_LOCK_BLOCKING=1 -DKJ_SAVE_ACQUIRED_LOCK_INFO=1 -DKJ_CONTENTION_WARNING_THRESHOLD=200"] | |
| 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 g++ ${{ matrix.compiler }} | |
| - name: super-test | |
| run: | | |
| # librt is used for timer_create in the unit tests for lock tracking (mutex-test.c++). | |
| ./super-test.sh quick ${{ matrix.compiler }} cpp-features "${{matrix.features}}" extra-libs "-lrt" | |
| ManyLinux: | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - cross-compiler: manylinux2014-x64 | |
| - cross-compiler: manylinux2014-x86 | |
| docker-run-args: --platform linux/386 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: install dockcross | |
| run: | | |
| docker run ${{ matrix.docker-run-args }} --rm dockcross/${{ matrix.cross-compiler }} > ./dockcross | |
| chmod +x ./dockcross | |
| - name: super-test | |
| run: | | |
| ./dockcross ./super-test.sh quick no-fiber g++ | |
| 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-2019', 'windows-latest'] | |
| include: | |
| - os: windows-2019 | |
| target: 'Visual Studio 16 2019' | |
| arch: -A x64 | |
| - os: windows-latest | |
| target: 'Visual Studio 17 2022' | |
| arch: -A x64 | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Include $CONDA in $PATH | |
| run: | | |
| echo "$Env:CONDA\condabin" >> $env:GITHUB_PATH | |
| - name: Install dependencies via Conda | |
| run: | | |
| conda update -n base -c defaults -q conda | |
| conda install -n base -c defaults -q ninja openssl zlib | |
| - name: Build and test | |
| shell: cmd | |
| run: | | |
| echo "Activate conda base environment" | |
| call activate base | |
| echo "Building Cap'n Proto with ${{ matrix.target }}" | |
| cmake -Hc++ -Bbuild-output ${{ matrix.arch }} -G "${{ matrix.target }}" -DCMAKE_BUILD_TYPE=debug -DCMAKE_PREFIX_PATH="%CONDA_PREFIX%" -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 ${{ matrix.arch }} -G "${{ matrix.target }}" -DCMAKE_BUILD_TYPE=debug -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 "Deleting broken Postgres install until https://github.com/actions/virtual-environments/issues/1089 is fixed..." | |
| rmdir /s /q C:\PROGRA~1\POSTGR~1 | |
| 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" -DCMAKE_CXX_STANDARD_LIBRARIES="-static-libgcc -static-libstdc++" | |
| 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' | |
| Linux-bazel-clang: | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| clang_version: [16] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: install dependencies | |
| run: | | |
| export DEBIAN_FRONTEND=noninteractive | |
| sudo apt-get install -y build-essential git | |
| # todo: replace with apt-get when clang-16 is part of ubuntu lts | |
| - name: install clang | |
| uses: egor-tensin/setup-clang@v1 | |
| with: | |
| version: ${{ matrix.clang_version }} | |
| - name: super-test | |
| run: | | |
| cd c++ | |
| bazel test --verbose_failures --test_output=errors //... | |
| FreeBSD: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| release: ['13.4', '14.2', '15.0'] | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Start FreeBSD VM | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| release: ${{ matrix.release }} | |
| sync: rsync | |
| copyback: false | |
| prepare: pkg install -y autoconf automake bash cmake libtool pkgconf | |
| - name: super-test | |
| shell: freebsd {0} | |
| run: | | |
| cd ${{ github.workspace }} | |
| ./super-test.sh quick nowerror clang |