1010 - ' release-*'
1111
1212jobs :
13+ Linux-musl :
14+ runs-on : ubuntu-20.04
15+ container : alpine:3.16.3
16+ steps :
17+ - uses : actions/checkout@v2
18+ - name : install dependencies
19+ run : apk add autoconf automake bash build-base cmake libtool libucontext-dev linux-headers openssl-dev
20+ - name : super-test
21+ run : ./super-test.sh quick
22+ Linux-old :
23+ runs-on : ubuntu-20.04
24+ strategy :
25+ fail-fast : false
26+ matrix :
27+ compiler : [g++-7, clang-6.0]
28+ steps :
29+ - uses : actions/checkout@v2
30+ - name : install dependencies
31+ run : |
32+ export DEBIAN_FRONTEND=noninteractive
33+ sudo apt-get install -y build-essential git zlib1g-dev cmake libssl-dev ${{ matrix.compiler }}
34+ - name : super-test
35+ run : |
36+ ./super-test.sh quick ${{ matrix.compiler }}
1337 Linux :
1438 runs-on : ubuntu-latest
1539 strategy :
1640 fail-fast : false
1741 matrix :
18- compiler : [g++-7, g++-10, clang-6.0, clang-10 ]
42+ compiler : [g++-12, clang-14 ]
1943 steps :
2044 - uses : actions/checkout@v2
2145 - name : install dependencies
2650 run : |
2751 ./super-test.sh quick ${{ matrix.compiler }}
2852 Linux-lock-tracking :
29- runs-on : ubuntu-latest
53+ runs-on : ubuntu-20.04
3054 strategy :
3155 fail-fast : false
3256 matrix :
4266 run : |
4367 # librt is used for timer_create in the unit tests for lock tracking (mutex-test.c++).
4468 ./super-test.sh quick ${{ matrix.compiler }} cpp-features "${{matrix.features}}" extra-libs "-lrt"
69+ ManyLinux :
70+ runs-on : ubuntu-20.04
71+ strategy :
72+ fail-fast : false
73+ matrix :
74+ include :
75+ - cross-compiler : manylinux2014-x64
76+ - cross-compiler : manylinux2014-x86
77+ docker-run-args : --platform linux/386
78+ steps :
79+ - uses : actions/checkout@v2
80+ - name : install dockcross
81+ run : |
82+ docker run ${{ matrix.docker-run-args }} --rm dockcross/${{ matrix.cross-compiler }} > ./dockcross
83+ chmod +x ./dockcross
84+ - name : super-test
85+ run : |
86+ ./dockcross ./super-test.sh quick g++
4587 MacOS :
4688 runs-on : macos-latest
4789 strategy :
@@ -59,13 +101,13 @@ jobs:
59101 strategy :
60102 fail-fast : false
61103 matrix :
62- os : ['windows-2016 ', 'windows-latest']
104+ os : ['windows-2019 ', 'windows-latest']
63105 include :
64- - os : windows-2016
65- target : ' Visual Studio 15 2017 '
106+ - os : windows-2019
107+ target : ' Visual Studio 16 2019 '
66108 arch : -A x64
67109 - os : windows-latest
68- target : ' Visual Studio 16 2019 '
110+ target : ' Visual Studio 17 2022 '
69111 arch : -A x64
70112 steps :
71113 - uses : actions/checkout@v2
@@ -104,7 +146,7 @@ jobs:
104146 rmdir /s /q C:\PROGRA~1\POSTGR~1
105147
106148 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"
149+ 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++"
108150 cmake --build build-output --target install -- -j2
109151
110152 echo "Building Cap'n Proto samples with MinGW"
@@ -113,27 +155,49 @@ jobs:
113155
114156 cd build-output\src
115157 ctest -V -C debug
116- Cygwin :
117- runs-on : windows-latest
158+ # Cygwin:
159+ # runs-on: windows-latest
160+ # strategy:
161+ # fail-fast: false
162+ # steps:
163+ # - run: git config --global core.autocrlf false
164+ # - uses: actions/checkout@v2
165+ # # TODO(someday): If we could cache the Cygwin installation we wouldn't have to spend three
166+ # # minutes installing it for every build. Unfortuntaley, actions/cache@v1 does not preserve
167+ # # DOS file attributes, which corrupts the Cygwin install. In particular, Cygwin marks
168+ # # symlinks with the "DOS SYSTEM" attribute. We could cache just the downloaded packages,
169+ # # but it turns out that only saves a couple seconds; most of the time is spend unpacking.
170+ # - name: Install Cygwin
171+ # run: |
172+ # choco config get cacheLocation
173+ # choco install --no-progress cygwin
174+ # - name: Install Cygwin additional packages
175+ # shell: cmd
176+ # run: |
177+ # 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
178+ # - name: Build and test
179+ # shell: cmd
180+ # run: |
181+ # C:\tools\cygwin\bin\bash -lc 'export PATH=/usr/local/bin:/usr/bin:/bin; cd /cygdrive/d/a/capnproto/capnproto; ./super-test.sh quick'
182+ Linux-bazel-clang :
183+ runs-on : ubuntu-20.04
118184 strategy :
119185 fail-fast : false
186+ matrix :
187+ clang_version : [16]
120188 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
189+ - uses : actions/checkout@v3
190+ - uses : bazelbuild/setup-bazelisk@v2
191+ - name : install dependencies
134192 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
193+ export DEBIAN_FRONTEND=noninteractive
194+ sudo apt-get install -y build-essential git
195+ # todo: replace with apt-get when clang-16 is part of ubuntu lts
196+ - name : install clang
197+ uses : egor-tensin/setup-clang@v1
198+ with :
199+ version : ${{ matrix.clang_version }}
200+ - name : super-test
138201 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'
202+ cd c++
203+ bazel test --verbose_failures --test_output=errors //...
0 commit comments