Skip to content

Commit

Permalink
Duplicate integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
erikbosch committed Mar 6, 2024
1 parent c8fb4ee commit 09eb264
Show file tree
Hide file tree
Showing 118 changed files with 52,362 additions and 215 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# * SPDX-License-Identifier: Apache-2.0
# ********************************************************************************/

name: integration-test
name: hvac-integration-test

on:
workflow_dispatch:
Expand All @@ -20,8 +20,14 @@ on:
branches:
- main
pull_request:
branches:
- main
paths:
- ".github/workflows/hvac_integration_test.yml"
- "hvac_service/**"
- "proto/**"

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
integration-test:
Expand All @@ -46,27 +52,14 @@ jobs:
- name: Install dependencies
shell: bash
run: |
.github/workflows/scripts/install-ci-tooling.sh
- name: Build seat_service image
shell: bash
working-directory: ./seat_service
run: |
./docker-build.sh -l x86_64
.github/workflows/scripts/hvac-install-ci-tooling.sh
- name: Build hvac_service image
shell: bash
working-directory: ./hvac_service
run: |
./docker-build.sh -l x86_64
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Setup VAL containers
shell: bash
env:
Expand All @@ -75,17 +68,16 @@ jobs:
# affecting integration tests for this repository
# The file specified must exist in the Databroker container
# KDB_OPT: "--vss vss_release_3.1.1.json"
SEAT_TAG: "prerelease"
HVAC_TAG: "prerelease"
run: |
./integration_test/it-setup.sh init
if ! ./integration_test/it-setup.sh start; then
./hvac_service/integration_test/it-setup.sh init
if ! ./hvac_service/integration_test/it-setup.sh start; then
echo "### Container startup failed logs:"
./integration_test/it-setup.sh status --logs
./hvac_service/integration_test/it-setup.sh status --logs
exit 1
fi
sleep 1
./integration_test/it-setup.sh status --logs
./hvac_service/integration_test/it-setup.sh status --logs
# echo "$ docker image ls"
# docker image ls
# echo "$ docker ps -a"
Expand All @@ -96,9 +88,9 @@ jobs:
- name: Install Requirements
shell: bash
run: |
pip3 install -U -r integration_test/requirements.txt
pip3 install -U -r hvac_service/integration_test/requirements.txt
pip3 install -U -e hvac_service/
pip3 install -U -e integration_test/
pip3 install -U -e hvac_service/integration_test/
- name: Run Integration Tests
shell: bash
Expand All @@ -107,7 +99,7 @@ jobs:
USE_DAPR: "0"
GRPC_ENABLE_FORK_SUPPORT: "false"
run: |
pytest -v ./integration_test --asyncio-mode=auto \
pytest -v ./hvac_service/integration_test --asyncio-mode=auto \
--override-ini junit_family=xunit1 --junit-xml=./results/IntegrationTest/junit.xml \
--log-file=./results/IntegrationTest/integration.log --log-file-level=DEBUG
Expand All @@ -130,7 +122,7 @@ jobs:
- name: Integration logs and cleanup
shell: bash
run: |
./integration_test/it-setup.sh status --logs
./integration_test/it-setup.sh cleanup --force
./hvac_service/integration_test/it-setup.sh status --logs
./hvac_service/integration_test/it-setup.sh cleanup --force
docker image ls
docker ps -a
62 changes: 62 additions & 0 deletions .github/workflows/scripts/seat-install-ci-tooling.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash
#********************************************************************************
# Copyright (c) 2022 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License 2.0 which is available at
# http://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
#*******************************************************************************/

# To prevent interactive shells
export ENV DEBIAN_FRONTEND=noninteractive

# Install apt & root utils needed inside devcontainer
sudo apt-get -qqy update &&
sudo apt-get -qqy install --no-install-recommends apt-utils software-properties-common sudo curl file

# Install dev utilities
sudo apt-get -qqy install --no-install-recommends git doxygen can-utils python3

# Install build tools
sudo apt-get -qqy install --no-install-recommends \
cmake \
make

# compilers
# compiler version must be sync with conan build profile
sudo apt-get -qqy install --no-install-recommends \
g++ \
g++-aarch64-linux-gnu

sudo apt-get -qqy install --no-install-recommends \
lcov \
gcovr \
clang-format \
cppcheck \
valgrind

# Install PIP
[ -z "$(which pip3)" ] && sudo apt-get -qqy install --no-install-recommends --fix-missing python3-pip

# Default pip and setuptools are too old...
pip3 install --upgrade pip setuptools

# conan: dependency management
# - conan needed > 1.43 for gtest
# - conan >= 2.0 breaks commandline interface
# cantools: code generation from .dbc file
pip3 install \
'conan==1.56.0' \
'cantools==37.0.1'

# install docker
# curl -fsSL https://get.docker.com -o - | bash -
# docker --version

echo "### Running on:"
cat /etc/os-release
127 changes: 127 additions & 0 deletions .github/workflows/seat_integration_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# /********************************************************************************
# * Copyright (c) 2022 Contributors to the Eclipse Foundation
# *
# * See the NOTICE file(s) distributed with this work for additional
# * information regarding copyright ownership.
# *
# * This program and the accompanying materials are made available under the
# * terms of the Apache License 2.0 which is available at
# * http://www.apache.org/licenses/LICENSE-2.0
# *
# * SPDX-License-Identifier: Apache-2.0
# ********************************************************************************/

name: seat-integration-test

on:
workflow_dispatch:
push:
# Run only on branches/commits and not tags
branches:
- main
pull_request:
paths:
- ".github/workflows/seat_integration_test.yml"
- "seat_service/**"
- "proto/**"

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
integration-test:
# reduce runtime requirements from libc/libc++
runs-on: ubuntu-20.04
# container:
# image: ghcr.io/${{ github.repository }}/oci_kuksa-val-services-ci:v0.1.0
# credentials:
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Adding github workspace as safe directory
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
git config --global user.email "github-automation@users.noreply.github.com"
git config --global user.name "Github Automation"
- name: Checkout Repository
uses: actions/checkout@v4

- name: Install dependencies
shell: bash
run: |
.github/workflows/scripts/seat-install-ci-tooling.sh
- name: Build seat_service image
shell: bash
working-directory: ./seat_service
run: |
./docker-build.sh -l x86_64
- name: Setup VAL containers
shell: bash
env:
# We may need to specify a VSS version compatible with the code in this repository
# This is needed if the default VSS version used by Databroker has backward incompatible changes
# affecting integration tests for this repository
# The file specified must exist in the Databroker container
# KDB_OPT: "--vss vss_release_3.1.1.json"
SEAT_TAG: "prerelease"
run: |
./seat_service/integration_test/it-setup.sh init
if ! ./seat_service/integration_test/it-setup.sh start; then
echo "### Container startup failed logs:"
./seat_service/integration_test/it-setup.sh status --logs
exit 1
fi
sleep 1
./seat_service/integration_test/it-setup.sh status --logs
# echo "$ docker image ls"
# docker image ls
# echo "$ docker ps -a"
# docker ps -a
# echo "$ docker inspect val-int"
# docker inspect val-int
- name: Install Requirements
shell: bash
run: |
pip3 install -U -r seat_service/integration_test/requirements.txt
pip3 install -U -e seat_service/integration_test/
- name: Run Integration Tests
shell: bash
env:
# force using it-setup.sh (testing with ghcr.io tags), DAPR standalone mode does not work in CI
USE_DAPR: "0"
GRPC_ENABLE_FORK_SUPPORT: "false"
run: |
pytest -v ./seat_service/integration_test --asyncio-mode=auto \
--override-ini junit_family=xunit1 --junit-xml=./results/IntegrationTest/junit.xml \
--log-file=./results/IntegrationTest/integration.log --log-file-level=DEBUG
# Step below disabled, only triggered for pull requests internally within repository
# and that is typically not used, and is not working as action does not have sufficient permissions
# - name: Publish Integration Test Results
# uses: EnricoMi/publish-unit-test-result-action@v2
# if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
# with:
# files: ./results/IntegrationTest/junit.xml

- name: Upload Integration Test Logs
uses: actions/upload-artifact@v3
if: always()
with:
name: integration_test.log
path: |
./results/IntegrationTest/integration.log
- name: Integration logs and cleanup
shell: bash
run: |
./seat_service/integration_test/it-setup.sh status --logs
./seat_service/integration_test/it-setup.sh cleanup --force
docker image ls
docker ps -a
6 changes: 5 additions & 1 deletion .github/workflows/seat_service_debug_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ on:
- "kuksa_data_broker/proto/**"
workflow_dispatch:

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
build:
# reduce runtime requirements from libc/libc++
Expand All @@ -42,7 +46,7 @@ jobs:
- name: Install dependencies
shell: bash
run: |
.github/workflows/scripts/install-ci-tooling.sh
.github/workflows/scripts/seat-install-ci-tooling.sh
- name: Run build
working-directory: ${{github.workspace}}/seat_service
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/seat_service_docu_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ on:
workflow_call:
workflow_dispatch:

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
build:
# reduce runtime requirements from libc/libc++
Expand All @@ -36,7 +40,7 @@ jobs:
- name: Install dependencies
shell: bash
run: |
.github/workflows/scripts/install-ci-tooling.sh
.github/workflows/scripts/seat-install-ci-tooling.sh
- name: Build docu
working-directory: ${{github.workspace}}/seat_service
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/seat_service_release_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
- name: Install dependencies
shell: bash
run: |
.github/workflows/scripts/install-ci-tooling.sh
.github/workflows/scripts/seat-install-ci-tooling.sh
- name: Run build
working-directory: ${{github.workspace}}/seat_service
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/seat_service_seatctrl_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ on:
- "seat_service/CMakeLists.txt"
workflow_dispatch:

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
# NOTE: CodeCoverage requires debug build...
Expand All @@ -44,7 +48,7 @@ jobs:
- name: Install dependencies
shell: bash
run: |
.github/workflows/scripts/install-ci-tooling.sh
.github/workflows/scripts/seat-install-ci-tooling.sh
- name: Run build
working-directory: ${{github.workspace}}/seat_service
Expand Down
Loading

0 comments on commit 09eb264

Please sign in to comment.