11name : poco-ci
2- on : [push]
2+ on : [push, pull_request ]
33jobs :
44 linux-gcc-make :
55 runs-on : ubuntu-20.04
6+ services :
7+ mysql :
8+ image : mysql:latest
9+ env :
10+ MYSQL_ALLOW_EMPTY_PASSWORD : yes
11+ MYSQL_USER : pocotest
12+ MYSQL_PASSWORD : pocotest
13+ MYSQL_DATABASE : pocotest
14+ ports :
15+ - 3306:3306
616 steps :
717 - uses : actions/checkout@v2
8- - run : sudo apt update && sudo apt install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
18+ - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev
919 - run : ./configure --everything --omit=PDF && make all -s -j4 && sudo make install
1020 - run : >-
1121 sudo -s
12- EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB"
22+ EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB"
23+ ./ci/runtests.sh
24+
25+ linux-gcc-make-cxx20 :
26+ runs-on : ubuntu-22.04
27+ steps :
28+ - uses : actions/checkout@v2
29+ - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev
30+ - run : ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install
31+ - run : >-
32+ sudo -s
33+ EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB"
1334 ./ci/runtests.sh
1435
1536 linux-gcc-make-asan :
1637 runs-on : ubuntu-20.04
38+ services :
39+ mysql :
40+ image : mysql:latest
41+ env :
42+ MYSQL_ALLOW_EMPTY_PASSWORD : yes
43+ MYSQL_USER : pocotest
44+ MYSQL_PASSWORD : pocotest
45+ MYSQL_DATABASE : pocotest
46+ ports :
47+ - 3306:3306
1748 steps :
1849 - uses : actions/checkout@v2
19- - run : sudo apt update && sudo apt install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
20- - run : ./configure --everything --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install
50+ - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
51+ - run : ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install
52+ - run : >-
53+ sudo -s
54+ EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB"
55+ ./ci/runtests.sh
56+
57+ linux-gcc-make-asan-no-soo :
58+ runs-on : ubuntu-20.04
59+ steps :
60+ - uses : actions/checkout@v2
61+ - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
62+ - run : ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install
2163 - run : >-
2264 sudo -s
2365 EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB"
@@ -27,18 +69,28 @@ jobs:
2769 runs-on : ubuntu-20.04
2870 steps :
2971 - uses : actions/checkout@v2
30- - run : sudo apt update && sudo apt install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
31- - run : ./configure --everything --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install
72+ - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
73+ - run : ./configure --everything --no-samples -- omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install
3274 - run : >-
3375 sudo -s
3476 EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB"
3577 ./ci/runtests.sh
3678
79+ linux-gcc-make-tsan :
80+ runs-on : ubuntu-20.04
81+ steps :
82+ - uses : actions/checkout@v2
83+ - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server
84+ - run : ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install
85+ - run : >-
86+ sudo -s
87+ ./ci/runtests.sh TSAN
88+
3789 linux-gcc-cmake :
3890 runs-on : ubuntu-20.04
3991 steps :
4092 - uses : actions/checkout@v2
41- - run : sudo apt update && sudo apt install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server
93+ - run : sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server
4294 - run : cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all
4395 - run : >-
4496 cd cmake-build &&
@@ -51,14 +103,14 @@ jobs:
51103 steps :
52104 - uses : actions/checkout@v2
53105 - run : >-
54- sudo apt-get update &&
55- sudo apt-get install crossbuild-essential-armhf
106+ sudo apt-get -y update &&
107+ sudo apt-get -y install crossbuild-essential-armhf
56108 - run : >-
57109 ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page &&
58110 make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf
59111
60112 macos-clang-make :
61- runs-on : macos-10.15
113+ runs-on : macos-11
62114 steps :
63115 - uses : actions/checkout@v2
64116 - run : brew install openssl@1.1 mysql-client unixodbc libpq
70122 ./ci/runtests.sh
71123
72124 macos-clang-cmake :
73- runs-on : macos-10.15
125+ runs-on : macos-11
74126 steps :
75127 - uses : actions/checkout@v2
76128 - run : brew install openssl@1.1 mysql-client unixodbc libpq
83135 ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)"
84136
85137 macos-clang-cmake-openssl3 :
86- runs-on : macos-10.15
138+ runs-on : macos-11
87139 steps :
88140 - uses : actions/checkout@v2
89141 - run : brew install openssl@3 mysql-client unixodbc libpq
@@ -106,6 +158,38 @@ jobs:
106158 - run : >-
107159 cd cmake-build;
108160 ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release
161+
162+ windows-2019-msvc-buildwin-x64 :
163+ runs-on : windows-2019
164+ env :
165+ CPPUNIT_IGNORE : class CppUnit::TestCaller<class PathTest>.testFind,class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,class CppUnit::TestCaller<class ICMPClientTest>.testPing,class CppUnit::TestCaller<class ICMPClientTest>.testBigPing,class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,class CppUnit::TestCaller<class HTTPSClientSessionTest>.testProxy,class CppUnit::TestCaller<class HTTPSStreamFactoryTest>.testProxy
166+ steps :
167+ - uses : actions/checkout@v2
168+ - run : .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT"
169+
170+ # windows-2019-msvc-buildwin-win32:
171+ # runs-on: windows-2019
172+ # env:
173+ # CPPUNIT_IGNORE: class CppUnit::TestCaller<class PathTest>.testFind,class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,class CppUnit::TestCaller<class ICMPClientTest>.testPing,class CppUnit::TestCaller<class ICMPClientTest>.testBigPing,class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,class CppUnit::TestCaller<class HTTPSClientSessionTest>.testProxy,class CppUnit::TestCaller<class HTTPSStreamFactoryTest>.testProxy
174+ # steps:
175+ # - uses: actions/checkout@v2
176+ # - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT"
177+
178+ windows-2022-msvc-buildwin-x64 :
179+ runs-on : windows-2022
180+ env :
181+ CPPUNIT_IGNORE : class CppUnit::TestCaller<class PathTest>.testFind,class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,class CppUnit::TestCaller<class ICMPClientTest>.testPing,class CppUnit::TestCaller<class ICMPClientTest>.testBigPing,class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,class CppUnit::TestCaller<class HTTPSClientSessionTest>.testProxy,class CppUnit::TestCaller<class HTTPSStreamFactoryTest>.testProxy
182+ steps :
183+ - uses : actions/checkout@v2
184+ - run : .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT"
185+
186+ # windows-2022-msvc-buildwin-win32:
187+ # runs-on: windows-2022
188+ # env:
189+ # CPPUNIT_IGNORE: class CppUnit::TestCaller<class PathTest>.testFind,class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,class CppUnit::TestCaller<class ICMPClientTest>.testPing,class CppUnit::TestCaller<class ICMPClientTest>.testBigPing,class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,class CppUnit::TestCaller<class HTTPSClientSessionTest>.testProxy,class CppUnit::TestCaller<class HTTPSStreamFactoryTest>.testProxy
190+ # steps:
191+ # - uses: actions/checkout@v2
192+ # - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT"
109193
110194 windows-2022-msvc-cmake-2022 :
111195 runs-on : windows-2022
@@ -118,3 +202,16 @@ jobs:
118202 - run : >-
119203 cd cmake-build;
120204 ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release
205+
206+ # missing asan dll path
207+ # windows-2022-msvc-cmake-2022-asan:
208+ # runs-on: windows-2022
209+ # env:
210+ # CPPUNIT_IGNORE: class CppUnit::TestCaller<class PathTest>.testFind,class CppUnit::TestCaller<class ICMPSocketTest>.testSendToReceiveFrom,class CppUnit::TestCaller<class ICMPClientTest>.testPing,class CppUnit::TestCaller<class ICMPClientTest>.testBigPing,class CppUnit::TestCaller<class ICMPSocketTest>.testMTU,class CppUnit::TestCaller<class HTTPSClientSessionTest>.testProxy,class CppUnit::TestCaller<class HTTPSStreamFactoryTest>.testProxy
211+ # steps:
212+ # - uses: actions/checkout@v2
213+ # - run: cmake -S. -Bcmake-build -DPOCO_SANITIZE_ASAN=ON -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON
214+ # - run: cmake --build cmake-build --config Debug
215+ # - run: >-
216+ # cd cmake-build;
217+ # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Debug
0 commit comments