1919 VSOMEIP_SOURCE_PATH : vsomeip-src
2020 VSOMEIP_INSTALL_PATH : vsomeip-install
2121
22- GENERIC_CPP_STDLIB_PATH : /usr/include/c++/11
23- ARCH_SPECIFIC_CPP_STDLIB_PATH : /usr/include/x86_64-linux-gnu/c++/11
24-
2522on :
2623 push :
2724 branches : [ main ]
3128 - " **/include/**"
3229 - " **/src/**"
3330 - " **/Cargo.*"
31+ - " build/**"
3432 workflow_call :
3533 workflow_dispatch :
3634
@@ -39,10 +37,39 @@ concurrency:
3937 cancel-in-progress : true
4038
4139jobs :
40+
41+ set-env :
42+ name : Set environment variables
43+ runs-on : ubuntu-22.04
44+
45+ outputs :
46+ arch_specific_cpp_stdlib_path : ${{ steps.set_env.outputs.arch_specific_cpp_stdlib_path }}
47+ generic_cpp_stdlib_path : ${{ steps.set_env.outputs.generic_cpp_stdlib_path }}
48+
49+ steps :
50+ - uses : actions/checkout@v4
51+
52+ - name : Add execute permissions for envsetup
53+ run : chmod +x build/envsetup.sh
54+
55+ - name : Set stdlib paths dynamically
56+ id : set_env
57+ run : |
58+ source ./build/envsetup.sh highest
59+ echo "arch_specific_cpp_stdlib_path=$ARCH_SPECIFIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT
60+ echo "generic_cpp_stdlib_path=$GENERIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT
61+
4262 obtain_and_build_vsomeip :
43- runs-on : ubuntu-latest
63+ runs-on : ubuntu-22.04
64+ needs : set-env
65+
4466 outputs :
4567 cache_key : ${{ steps.generate_cache_key.outputs.CACHE_KEY }}
68+
69+ env :
70+ ARCH_SPECIFIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
71+ GENERIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
72+
4673 steps :
4774 - name : Checkout repository
4875 uses : actions/checkout@v4
@@ -53,14 +80,18 @@ jobs:
5380 echo "VSOMEIP_SOURCE_PATH=${{ github.workspace }}/${{ env.VSOMEIP_SOURCE_PATH }}" >> $GITHUB_ENV
5481 echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV
5582 echo "VSOMEIP_SOURCE_PATH_WITH_WILDCARD=${{ github.workspace }}/${{ env.VSOMEIP_SOURCE_PATH }}/*" >> $GITHUB_ENV
83+ env
5684
5785 - name : Print environment variables for debugging
5886 run : |
5987 echo "VSOMEIP_SOURCE_TARBALL: ${{ env.VSOMEIP_SOURCE_TARBALL }}"
6088 echo "VSOMEIP_SOURCE_PATH: ${{ env.VSOMEIP_SOURCE_PATH }}"
6189 echo "VSOMEIP_INSTALL_PATH: ${{ env.VSOMEIP_INSTALL_PATH }}"
6290 echo "VSOMEIP_SOURCE_PATH_WITH_WILDCARD: ${{ env.VSOMEIP_SOURCE_PATH_WITH_WILDCARD }}"
63-
91+ echo "GENERIC_CPP_STDLIB_PATH: ${{ env.GENERIC_CPP_STDLIB_PATH }}"
92+ echo "ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ env.ARCH_SPECIFIC_CPP_STDLIB_PATH }}"
93+ env
94+
6495 - name : Download tarball
6596 run : |
6697 wget -O vsomeip-source.tar.gz $VSOMEIP_SOURCE_TARBALL
@@ -102,7 +133,7 @@ jobs:
102133
103134 - name : Install dependencies
104135 if : steps.cache-vsomeip.outputs.cache-hit != 'true'
105- run : sudo apt-get install -y build-essential cmake libboost-all-dev
136+ run : sudo apt-get install -y build-essential cmake libboost-all-dev doxygen asciidoc
106137
107138 - name : Build vsomeip
108139 if : steps.cache-vsomeip.outputs.cache-hit != 'true'
@@ -120,9 +151,14 @@ jobs:
120151
121152 lint :
122153 name : Lint
123- needs : obtain_and_build_vsomeip
124- runs-on : ubuntu-latest
154+ needs :
155+ - obtain_and_build_vsomeip
156+ - set-env
157+ runs-on : ubuntu-22.04
158+
125159 env :
160+ ARCH_SPECIFIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
161+ GENERIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
126162 CACHE_KEY : ${{ needs.obtain_and_build_vsomeip.outputs.cache_key }}
127163
128164 steps :
@@ -170,10 +206,15 @@ jobs:
170206
171207 test :
172208 name : Test
173- needs : obtain_and_build_vsomeip
174- runs-on : ubuntu-latest
209+ needs :
210+ - obtain_and_build_vsomeip
211+ - set-env
212+ runs-on : ubuntu-22.04
213+
175214 env :
176215 CACHE_KEY : ${{ needs.obtain_and_build_vsomeip.outputs.cache_key }}
216+ ARCH_SPECIFIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
217+ GENERIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
177218
178219 steps :
179220 - uses : actions/checkout@v4
@@ -221,7 +262,9 @@ jobs:
221262 - name : Run tests and report code coverage
222263 run : |
223264 # enable nightly features so that we can also include Doctests
224- LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin --no-default-features -o xml -o lcov -o html --doc --tests -- --test-threads 1
265+ # TODO: tarpaulin fails silently. Possible version issue
266+ # LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin --no-default-features -o xml -o lcov -o html --doc --tests -- --test-threads 1
267+ LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test -- --test-threads 1
225268
226269 - name : Upload coverage report (xml)
227270 uses : actions/upload-artifact@v4
@@ -249,10 +292,14 @@ jobs:
249292
250293 build-docs :
251294 name : Build documentation
252- needs : obtain_and_build_vsomeip
253- runs-on : ubuntu-latest
295+ needs :
296+ - obtain_and_build_vsomeip
297+ - set-env
298+ runs-on : ubuntu-22.04
254299 env :
255300 CACHE_KEY : ${{ needs.obtain_and_build_vsomeip.outputs.cache_key }}
301+ ARCH_SPECIFIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
302+ GENERIC_CPP_STDLIB_PATH : ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
256303
257304 steps :
258305 - uses : actions/checkout@v4
0 commit comments