Skip to content

Commit d962136

Browse files
authored
Merge pull request #34 from dmacattack/add-build-script
[#33] No longer supply stlib paths
2 parents 15707fe + 21019ff commit d962136

9 files changed

Lines changed: 260 additions & 44 deletions

File tree

.github/workflows/bundled-lint-and-test.yaml

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ name: Lint and Test - Bundled
1515

1616
env:
1717
VSOMEIP_INSTALL_PATH: vsomeip-install
18-
GENERIC_CPP_STDLIB_PATH: /usr/include/c++/11
19-
ARCH_SPECIFIC_CPP_STDLIB_PATH: /usr/include/x86_64-linux-gnu/c++/11
2018

2119
on:
2220
push:
@@ -27,6 +25,7 @@ on:
2725
- "**/include/**"
2826
- "**/src/**"
2927
- "**/Cargo.*"
28+
- "build/**"
3029
workflow_call:
3130
workflow_dispatch:
3231

@@ -36,9 +35,35 @@ concurrency:
3635

3736
jobs:
3837

38+
set-env:
39+
name: Set environment variables
40+
runs-on: ubuntu-22.04
41+
42+
outputs:
43+
arch_specific_cpp_stdlib_path: ${{ steps.set_env.outputs.arch_specific_cpp_stdlib_path }}
44+
generic_cpp_stdlib_path: ${{ steps.set_env.outputs.generic_cpp_stdlib_path }}
45+
46+
steps:
47+
- uses: actions/checkout@v4
48+
49+
- name: Add execute permissions for envsetup
50+
run: chmod +x build/envsetup.sh
51+
52+
- name: Set stdlib paths dynamically
53+
id: set_env
54+
run: |
55+
source ./build/envsetup.sh highest
56+
echo "arch_specific_cpp_stdlib_path=$ARCH_SPECIFIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT
57+
echo "generic_cpp_stdlib_path=$GENERIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT
58+
3959
lint:
4060
name: Lint
41-
runs-on: ubuntu-latest
61+
runs-on: ubuntu-22.04
62+
needs: set-env
63+
64+
env:
65+
ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
66+
GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
4267

4368
steps:
4469
- uses: actions/checkout@v4
@@ -49,10 +74,14 @@ jobs:
4974
- name: Set environment variables
5075
run: |
5176
echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV
77+
env
5278
5379
- name: Print environment variables for debugging
5480
run: |
5581
echo "VSOMEIP_INSTALL_PATH: ${{ env.VSOMEIP_INSTALL_PATH }}"
82+
echo "GENERIC_CPP_STDLIB_PATH: ${{ env.GENERIC_CPP_STDLIB_PATH }}"
83+
echo "ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ env.ARCH_SPECIFIC_CPP_STDLIB_PATH }}"
84+
env
5685
5786
- name: Ensure vsomeip install path exists
5887
run: |
@@ -76,7 +105,12 @@ jobs:
76105

77106
test:
78107
name: Test
79-
runs-on: ubuntu-latest
108+
runs-on: ubuntu-22.04
109+
needs: set-env
110+
111+
env:
112+
ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
113+
GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
80114

81115
steps:
82116
- uses: actions/checkout@v4
@@ -92,6 +126,7 @@ jobs:
92126
- name: Print environment variables for debugging
93127
run: |
94128
echo "VSOMEIP_INSTALL_PATH: ${{ env.VSOMEIP_INSTALL_PATH }}"
129+
env
95130
96131
- name: Ensure vsomeip install path exists
97132
run: |
@@ -113,7 +148,9 @@ jobs:
113148
- name: Run tests and report code coverage
114149
run: |
115150
# enable nightly features so that we can also include Doctests
116-
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin -o xml -o lcov -o html --doc --tests -- --test-threads 1
151+
# TODO: tarpaulin fails silently. Possible version issue
152+
# LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin -o xml -o lcov -o html --doc --tests -- --test-threads 1
153+
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test -- --test-threads 1
117154
118155
- name: Upload coverage report (xml)
119156
uses: actions/upload-artifact@v4
@@ -141,7 +178,12 @@ jobs:
141178

142179
build-docs:
143180
name: Build documentation
144-
runs-on: ubuntu-latest
181+
runs-on: ubuntu-22.04
182+
needs: set-env
183+
184+
env:
185+
ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }}
186+
GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }}
145187

146188
steps:
147189
- uses: actions/checkout@v4

.github/workflows/unbundled-lint-and-test.yaml

Lines changed: 60 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ env:
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-
2522
on:
2623
push:
2724
branches: [ main ]
@@ -31,6 +28,7 @@ on:
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

4139
jobs:
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

README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ This library implements a uTransport client for vsomeip in Rust following the uP
88

99
### Building the Library
1010

11-
To build the library, run:
11+
To build the library, setup the environment
12+
13+
``` bash
14+
source build/env_setup.sh
15+
```
16+
17+
then run:
1218
```bash
13-
VSOMEIP_INSTALL_PATH=<path/to/where/to/install/vsomeip> GENERIC_CPP_STDLIB_PATH=<path/to/generic/cpp/stdlib> ARCH_SPECIFIC_CPP_STDLIB_PATH=<path/to/arch_specific/cpp/stdlib> cargo build
19+
VSOMEIP_INSTALL_PATH=<path/to/where/to/install/vsomeip> cargo build
1420
```
1521

1622
in the project root directory.
@@ -23,7 +29,7 @@ This library leverages the [up-rust](https://github.com/eclipse-uprotocol/up-rus
2329

2430
To run the tests, run
2531
```bash
26-
VSOMEIP_INSTALL_PATH= <path/to/vsomeip/install> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path/to/vsomeip/install>/lib GENERIC_CPP_STDLIB_PATH=<path/to/generic/cpp/stdlib> ARCH_SPECIFIC_CPP_STDLIB_PATH=<path/to/arch_specific/cpp/stdlib> cargo test -- --test-threads 1
32+
VSOMEIP_INSTALL_PATH= <path/to/vsomeip/install> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path/to/vsomeip/install>/lib cargo test -- --test-threads 1
2733
```
2834

2935
Breaking this down:

0 commit comments

Comments
 (0)