capnproto

FORK: Cap'n Proto serialization/RPC system - core tools and C++ library
git clone https://git.neptards.moe/neptards/capnproto.git
Log | Files | Refs | README | LICENSE

quick-test.yml (5526B)


      1 name: Quick Tests
      2 
      3 on:
      4   pull_request:
      5     paths-ignore:
      6     - 'doc/**'
      7   push:
      8     branches:
      9     - master
     10     - 'release-*'
     11 
     12 jobs:
     13   Linux:
     14     runs-on: ubuntu-latest
     15     strategy:
     16       fail-fast: false
     17       matrix:
     18         compiler: [g++-7, g++-10, clang-6.0, clang-10]
     19     steps:
     20       - uses: actions/checkout@v2
     21       - name: install dependencies
     22         run: |
     23             export DEBIAN_FRONTEND=noninteractive
     24             sudo apt-get install -y build-essential git zlib1g-dev cmake libssl-dev ${{ matrix.compiler }}
     25       - name: super-test
     26         run: |
     27             ./super-test.sh quick ${{ matrix.compiler }}
     28   Linux-lock-tracking:
     29     runs-on: ubuntu-latest
     30     strategy:
     31       fail-fast: false
     32       matrix:
     33         compiler: [clang-9]
     34         features: ["-DKJ_TRACK_LOCK_BLOCKING=1 -DKJ_SAVE_ACQUIRED_LOCK_INFO=1 -DKJ_CONTENTION_WARNING_THRESHOLD=200"]
     35     steps:
     36       - uses: actions/checkout@v2
     37       - name: install dependencies
     38         run: |
     39             export DEBIAN_FRONTEND=noninteractive
     40             sudo apt-get install -y build-essential git zlib1g-dev cmake libssl-dev ${{ matrix.compiler }}
     41       - name: super-test
     42         run: |
     43             # librt is used for timer_create in the unit tests for lock tracking (mutex-test.c++).
     44             ./super-test.sh quick ${{ matrix.compiler }} cpp-features "${{matrix.features}}" extra-libs "-lrt"
     45   MacOS:
     46     runs-on: macos-latest
     47     strategy:
     48       fail-fast: false
     49     steps:
     50       - uses: actions/checkout@v2
     51       - name: install dependencies
     52         run: |
     53             brew install autoconf automake libtool pkg-config
     54       - name: super-test
     55         run: |
     56             ./super-test.sh quick
     57   MSVC:
     58     runs-on: ${{ matrix.os }}
     59     strategy:
     60       fail-fast: false
     61       matrix:
     62         os: ['windows-2016', 'windows-latest']
     63         include:
     64           - os: windows-2016
     65             target: 'Visual Studio 15 2017'
     66             arch: -A x64
     67           - os: windows-latest
     68             target: 'Visual Studio 16 2019'
     69             arch: -A x64
     70     steps:
     71       - uses: actions/checkout@v2
     72       - name: Include $CONDA in $PATH
     73         run: |
     74           echo "$Env:CONDA\condabin" >> $env:GITHUB_PATH
     75       - name: Install dependencies via Conda
     76         run: |
     77           conda update -n base -c defaults -q conda
     78           conda install -n base -c defaults -q ninja openssl zlib
     79       - name: Build and test
     80         shell: cmd
     81         run: |
     82             echo "Activate conda base environment"
     83             call activate base
     84             echo "Building Cap'n Proto with ${{ matrix.target }}"
     85             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
     86             cmake --build build-output --config debug --target install
     87 
     88             echo "Building Cap'n Proto samples with ${{ matrix.target }}"
     89             cmake -Hc++/samples -Bbuild-output-samples ${{ matrix.arch }} -G "${{ matrix.target }}" -DCMAKE_BUILD_TYPE=debug -DCMAKE_PREFIX_PATH=%CD%\capnproto-c++-install
     90             cmake --build build-output-samples --config debug
     91 
     92             cd build-output\src
     93             ctest -V -C debug
     94   MinGW:
     95     runs-on: windows-latest
     96     strategy:
     97       fail-fast: false
     98     steps:
     99       - uses: actions/checkout@v2
    100       - name: Build and test
    101         shell: cmd
    102         run: |
    103             echo "Deleting broken Postgres install until https://github.com/actions/virtual-environments/issues/1089 is fixed..."
    104             rmdir /s /q C:\PROGRA~1\POSTGR~1
    105 
    106             echo "Building Cap'n Proto with MinGW"
    107             cmake -Hc++ -Bbuild-output -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=%CD%\capnproto-c++-install -DCMAKE_SH="CMAKE_SH-NOTFOUND"
    108             cmake --build build-output --target install -- -j2
    109 
    110             echo "Building Cap'n Proto samples with MinGW"
    111             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"
    112             cmake --build build-output-samples
    113 
    114             cd build-output\src
    115             ctest -V -C debug
    116   Cygwin:
    117     runs-on: windows-latest
    118     strategy:
    119       fail-fast: false
    120     steps:
    121       - run: git config --global core.autocrlf false
    122       - uses: actions/checkout@v2
    123       # TODO(someday): If we could cache the Cygwin installation we wouldn't have to spend three
    124       #     minutes installing it for every build. Unfortuntaley, actions/cache@v1 does not preserve
    125       #     DOS file attributes, which corrupts the Cygwin install. In particular, Cygwin marks
    126       #     symlinks with the "DOS SYSTEM" attribute. We could cache just the downloaded packages,
    127       #     but it turns out that only saves a couple seconds; most of the time is spend unpacking.
    128       - name: Install Cygwin
    129         run: |
    130           choco config get cacheLocation
    131           choco install --no-progress cygwin
    132       - name: Install Cygwin additional packages
    133         shell: cmd
    134         run: |
    135           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
    136       - name: Build and test
    137         shell: cmd
    138         run: |
    139           C:\tools\cygwin\bin\bash -lc 'export PATH=/usr/local/bin:/usr/bin:/bin; cd /cygdrive/d/a/capnproto/capnproto; ./super-test.sh quick'