forked from eclipse-velocitas/vehicle-app-cpp-template
-
Notifications
You must be signed in to change notification settings - Fork 0
97 lines (81 loc) · 2.68 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# This file is maintained by velocitas CLI, do not modify manually. Change settings in .velocitas.json
# Copyright (c) 2022-2024 Contributors to the Eclipse Foundation
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0
# _Summary_
#
# Continuous integration workflow for the vehicle app.
# Builds the App natively on the host environment,
# executes all tests and lints all relevant source files.
name: CI workflow
concurrency:
group: app-ci-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
push:
# Run only on branches/commits and not tags
branches:
- main
pull_request:
branches:
- main
jobs:
build-and-publish:
runs-on: ubuntu-22.04
container: ghcr.io/eclipse-velocitas/devcontainer-base-images/cpp:v0.3
name: "Build, Test and Lint"
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Fix dubious ownership
run: |
git config --global --add safe.directory $( pwd )
- name: Init velocitas project
run: |
velocitas init
- name: install prerequisites
run: |
pip3 install -r requirements.txt
- name: Install dependencies
run: ./install_dependencies.sh -r
- name: build
run: ./build.sh -r
- name: Run Unit Tests
run: build/bin/app_utests > test-results.md
- name: Generate coverage report
run: cd build && gcovr -r ..
- name: Code Coverage Summary Report
uses: irongut/[email protected]
with:
filename: build/coverage.cobertura.xml
badge: true
format: markdown
hide_complexity: true
indicators: true
output: both
- name: Upload test-results as artifacts
uses: actions/upload-artifact@v4
with:
name: test-results
path: |
test-results.md
code-coverage-results.md
- name: Add test results to job summary
run: |
cat test-results.md >> $GITHUB_STEP_SUMMARY
cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY
- name: Run Linters
uses: pre-commit/[email protected]