@@ -29,204 +29,16 @@ concurrency:
2929
3030jobs :
3131
32- wireshark-dissector-build :
33- name : Build the Wireshark dissector
34- runs-on : ${{ matrix.os }}
35- timeout-minutes : 60
36- strategy :
37- matrix :
38- os : [ubuntu-20.04, macos-12]
39-
40- steps :
41- - name : checkout
42- uses : actions/checkout@v3
43-
44- - name : Install deps (Ubuntu)
45- if : ${{ startsWith(matrix.os, 'ubuntu') }}
46- run : |
47- sudo apt-get update -y
48- sudo apt-get install -y protobuf-compiler libprotobuf-dev wireshark-dev
49-
50- - name : Install deps (macOS)
51- if : ${{ startsWith(matrix.os, 'macos') }}
52- run :
53- brew install pkg-config wireshark protobuf
54-
55- - name : Build wireshark plugin
56- run : |
57- cmake -S wireshark -B build-wireshark
58- cmake --build build-wireshark
59-
60- unit-tests :
61- name : Run unit tests
62- runs-on : ubuntu-22.04
63- timeout-minutes : 120
64-
65- steps :
66- - name : checkout
67- uses : actions/checkout@v3
68-
69- - name : Install deps
70- run : |
71- sudo apt-get update -y && \
72- sudo apt-get install -y \
73- libcurl4-openssl-dev \
74- protobuf-compiler \
75- libprotobuf-dev \
76- libboost-dev \
77- libboost-program-options-dev \
78- libzstd-dev \
79- libsnappy-dev \
80- libgmock-dev \
81- libgtest-dev
82-
83- - name : Install gtest-parallel
84- run : |
85- sudo curl -o /gtest-parallel https://raw.githubusercontent.com/google/gtest-parallel/master/gtest_parallel.py
86-
87- - name : CMake
88- run : cmake . -DCMAKE_BUILD_TYPE=Debug -DBUILD_PERF_TOOLS=ON
89-
90- - name : Check formatting
91- run : make check-format
92-
93- - name : Build
94- run : make -j8
95-
96- - name : Run unit tests
97- run : RETRY_FAILED=3 ./run-unit-tests.sh
98-
99-
100- cpp-build-windows :
101- timeout-minutes : 120
102- name : Build CPP Client on ${{ matrix.name }}
103- needs : unit-tests
104- runs-on : ${{ matrix.os }}
105- env :
106- VCPKG_ROOT : ' ${{ github.workspace }}/vcpkg'
107- INSTALL_DIR : ' C:\\pulsar-cpp'
108- strategy :
109- fail-fast : false
110- matrix :
111- include :
112- - name : ' Windows x64'
113- os : windows-2019
114- triplet : x64-windows-static
115- suffix : ' windows-win64'
116- generator : ' Visual Studio 16 2019'
117- arch : ' -A x64'
118- - name : ' Windows x86'
119- os : windows-2019
120- triplet : x86-windows-static
121- suffix : ' windows-win32'
122- generator : ' Visual Studio 16 2019'
123- arch : ' -A Win32'
124-
125- steps :
126- - name : checkout
127- uses : actions/checkout@v3
128-
129- - name : Restore vcpkg and its artifacts.
130- uses : actions/cache@v3
131- id : vcpkg-cache
132- with :
133- path : |
134- ${{ env.VCPKG_ROOT }}
135- vcpkg_installed
136- !${{ env.VCPKG_ROOT }}/.git
137- !${{ env.VCPKG_ROOT }}/buildtrees
138- !${{ env.VCPKG_ROOT }}/packages
139- !${{ env.VCPKG_ROOT }}/downloads
140- key : |
141- ${{ runner.os }}-${{ matrix.triplet}}-${{ hashFiles( 'vcpkg.json' ) }}
142-
143- - name : Get vcpkg(windows)
144- if : ${{ runner.os == 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' }}
145- run : |
146- cd ${{ github.workspace }}
147- mkdir build -force
148- git clone https://github.com/Microsoft/vcpkg.git
149- cd vcpkg
150- .\bootstrap-vcpkg.bat
151-
152- - name : remove system vcpkg(windows)
153- if : runner.os == 'Windows'
154- run : rm -rf "$VCPKG_INSTALLATION_ROOT"
155- shell : bash
156-
157- - name : Install vcpkg packages
158- run : |
159- ${{ env.VCPKG_ROOT }}\vcpkg.exe install --triplet ${{ matrix.triplet }}
160-
161- - name : Configure
162- shell : bash
163- run : |
164- if [ "$RUNNER_OS" == "Windows" ]; then
165- cmake \
166- -B ./build-1 \
167- -G "${{ matrix.generator }}" ${{ matrix.arch }} \
168- -DBUILD_TESTS=OFF \
169- -DVCPKG_TRIPLET="${{ matrix.triplet }}" \
170- -DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" \
171- -S .
172- fi
173-
174- - name : Install
175- shell : bash
176- run : |
177- if [ "$RUNNER_OS" == "Windows" ]; then
178- cmake --build ./build-1 --parallel --config Release
179- cmake --install ./build-1
180- fi
181-
182- - name : Test examples
183- shell : bash
184- run : |
185- if [ "$RUNNER_OS" == "Windows" ]; then
186- cd win-examples
187- cmake \
188- -G "${{ matrix.generator }}" ${{ matrix.arch }} \
189- -DLINK_STATIC=OFF \
190- -DCMAKE_PREFIX_PATH=${{ env.INSTALL_DIR }} \
191- -B build-dynamic
192- cmake --build build-dynamic --config Release
193- cmake \
194- -G "${{ matrix.generator }}" ${{ matrix.arch }} \
195- -DLINK_STATIC=ON \
196- -DCMAKE_PREFIX_PATH=${{ env.INSTALL_DIR }} \
197- -B build-static
198- cmake --build build-static --config Release
199- ./build-static/Release/win-example.exe
200- fi
201-
202- - name : Build (Debug)
203- shell : bash
204- run : |
205- if [ "$RUNNER_OS" == "Windows" ]; then
206- cmake \
207- -B ./build-2 \
208- -G "${{ matrix.generator }}" ${{ matrix.arch }} \
209- -DBUILD_TESTS=OFF \
210- -DVCPKG_TRIPLET="${{ matrix.triplet }}" \
211- -DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" \
212- -DCMAKE_BUILD_TYPE=Debug \
213- -S .
214- cmake --build ./build-2 --parallel --config Debug
215- fi
216-
21732 package :
21833 name : Build ${{matrix.pkg.name}} ${{matrix.cpu.platform}}
21934 runs-on : ubuntu-22.04
220- needs : unit-tests
22135 timeout-minutes : 500
22236
22337 strategy :
22438 fail-fast : true
22539 matrix :
22640 pkg :
227- - { name: 'RPM', type: 'rpm', path: 'pkg/rpm/RPMS' }
22841 - { name: 'Deb', type: 'deb', path: 'pkg/deb/BUILD/DEB' }
229- - { name: 'Alpine', type: 'apk', path: 'pkg/apk/build' }
23042 cpu :
23143 - { arch: 'x86_64', platform: 'x86_64' }
23244
@@ -257,36 +69,11 @@ jobs:
25769 - name : Build packages
25870 run : pkg/${{matrix.pkg.type}}/docker-build-${{matrix.pkg.type}}-${{matrix.cpu.platform}}.sh build:latest
25971
260- cpp-build-macos :
261- timeout-minutes : 120
262- name : Build CPP Client on macOS
263- runs-on : macos-12
264- needs : unit-tests
265- steps :
266- - name : checkout
267- uses : actions/checkout@v3
268-
269- - name : Install dependencies
270- run : brew install openssl protobuf boost zstd snappy
271-
272- - name : Configure (default)
273- shell : bash
274- run : |
275- cmake \
276- -B ./build-macos \
277- -DBUILD_TESTS=OFF \
278- -S .
279-
280- - name : Compile
281- shell : bash
282- run : |
283- cmake --build ./build-macos --parallel --config Release
284-
28572 # Job that will be required to complete and depends on all the other jobs
28673 check-completion :
28774 name : Check Completion
28875 runs-on : ubuntu-latest
289- needs : [wireshark-dissector-build, unit-tests, cpp-build-windows, package, cpp-build-macos ]
76+ needs : [package]
29077
29178 steps :
29279 - run : true
0 commit comments