Skip to content

Add integration tests for generated ServiceServerFactory #86

Add integration tests for generated ServiceServerFactory

Add integration tests for generated ServiceServerFactory #86

Workflow file for this run

# Copyright (c) 2023-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
name: CI
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
push:
# Run only on branches/commits and not tags
branches:
- feature-100
pull_request:
branches:
- main
jobs:
# lint-job:
# name: "Run linters"
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install deps
# run: |
# pip install mypy
# pip install types-requests
# - name: Run Linters
# uses: pre-commit/[email protected]
# unit-test:
# name: "Run unit tests"
# runs-on: ubuntu-22.04
# container: ghcr.io/eclipse-velocitas/devcontainer-base-images/python:v0.3
# strategy:
# matrix:
# component: ["_shared", "setup", "grpc-interface-support", "vehicle-model-lifecycle", "sdk-installer", "build-system/cpp-cmake-conan"]
# fail-fast: false
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install required packages
# run: |
# if [ -e "${{ matrix.component }}/requirements.txt" ]; then
# pip install -r ${{ matrix.component }}/requirements.txt
# fi
# if [ -e "${{ matrix.component }}/test/requirements.txt" ]; then
# pip install -r ${{ matrix.component }}/test/requirements.txt
# fi
# - name: unit test
# shell: bash
# run: |
# pytest --override-ini junit_family=xunit1 \
# --junit-xml=./results/UnitTest/${{ matrix.component }}/junit.xml \
# --cov . \
# --cov-report=xml:results/CodeCoverage/${{ matrix.component }}/cobertura-coverage.xml \
# --cov-branch \
# ./${{ matrix.component }}/test/unit
# - name: Publish Test Report
# uses: mikepenz/action-junit-report@v3
# if: always()
# with:
# report_paths: ./results/UnitTest/${{ matrix.component }}/junit.xml
# summary: true
# update_check: true
# annotate_only: true
# - uses: irongut/[email protected]
# with:
# filename: results/CodeCoverage/${{ matrix.component }}/cobertura-coverage.xml
# badge: true
# format: markdown
# hide_complexity: true
# indicators: true
# output: both
# - run: |
# cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY
run-integration-tests:
name: Run Integration Test
runs-on: ubuntu-22.04
container: ghcr.io/eclipse-velocitas/devcontainer-base-images/${{ matrix.language }}:v0.3
strategy:
matrix:
language: ["python", "cpp"]
component:
[
"setup",
"grpc-interface-support",
"vehicle-model-lifecycle",
"sdk-installer",
"build-system/cpp-cmake-conan",
]
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Add safe directory
run: |
git config --global --add safe.directory $(pwd)
- name: Checkout template repository
uses: actions/checkout@v4
with:
repository: eclipse-velocitas/vehicle-app-${{ matrix.language }}-template
path: test/${{ matrix.language }}/repo
- name: Replace project config
run: |
cp -f test/${{ matrix.language }}/.velocitas.json test/${{ matrix.language }}/repo
- name: Add safe directory
run: |
git config --global --add safe.directory $(pwd)/test/${{ matrix.language }}/repo
- name: Setup local package version
shell: bash
run: |
export PACKAGE_PATH=~/.velocitas/packages/package_under_test/@main
mkdir -p $PACKAGE_PATH
cp -r * $PACKAGE_PATH
ls -al $PACKAGE_PATH
- name: Run integration tests
run: |
export THIS_REPO_PATH=$(pwd)
export VELOCITAS_TEST_LANGUAGE=${{ matrix.language }}
export VELOCITAS_TEST_ROOT=test/${{ matrix.language }}/repo
export VELOCITAS_COMPONENT_PATH=${THIS_REPO_PATH}/${{ matrix.component }}
python -m pip install -r ./${{ matrix.component }}/test/requirements.txt
python -m pip install -r ./${{ matrix.component }}/requirements.txt
pytest -s ./${{ matrix.component }}/test/integration