Skip to content

feat: gRPC interface support #173

feat: gRPC interface support

feat: gRPC interface support #173

Workflow file for this run

# Copyright (c) 2023 Robert Bosch GmbH and Microsoft Corporation
#
# 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
name: CI
concurrency:
group: ${{ 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:
lint-job:
name: "Run linters"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install deps
run: |
pip install mypy
pip install types-requests
- name: Run Linters
uses: ./.github/actions/pre-commit-action
unit-test:
name: "Run unit tests"
runs-on: ubuntu-22.04
container: ghcr.io/eclipse-velocitas/devcontainer-base-images/python:v0.1
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install required packages
run: |
pip install -r vehicle-model-lifecycle/requirements.txt
pip install -r vehicle-model-lifecycle/test/requirements.txt
- name: unit test
shell: bash
run: |
pytest --override-ini junit_family=xunit1 \
--junit-xml=./results/UnitTest/junit.xml \
--cov . \
--cov-report=xml:results/CodeCoverage/cobertura-coverage.xml \
--cov-branch \
./vehicle-model-lifecycle/test/unit
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ./results/UnitTest/junit.xml
summary: true
update_check: true
annotate_only: true
- uses: 5monkeys/cobertura-action@master
with:
path: results/CodeCoverage/cobertura-coverage.xml
minimum_coverage: 80
show_line: true
show_branch: true
fail_below_threshold: false
run-integration-tests:
name: Run Integration Test
runs-on: ubuntu-22.04
container: ghcr.io/eclipse-velocitas/devcontainer-base-images/${{ matrix.language }}:v0.1
strategy:
matrix:
language: ["python", "cpp"]
component: ["setup", "grpc-service-support", "vehicle-model-lifecycle"]
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Checkout template repository
uses: actions/checkout@v3
with:
repository: eclipse-velocitas/vehicle-app-${{ matrix.language }}-template
path: test/${{ matrix.language }}/repo
- name: Replace Velocitas JSON content
run: |
cp -f test/${{ matrix.language }}/.velocitas.json test/${{ matrix.language }}/repo
- name: Update Velocitas JSON with correct version
uses: ./.github/actions/update-velocitas-json
with:
project_path: test/${{ matrix.language }}/repo
- name: Run integration tests
run: |
export VELOCITAS_TEST_LANGUAGE=${{ matrix.language }}
export VELOCITAS_TEST_ROOT=test/${{ matrix.language }}/repo
python -m pip install -r ./${{ matrix.component }}/test/requirements.txt
python -m pip install -r ./${{ matrix.component }}/requirements.txt
pytest ./${{ matrix.component }}/test/integration