Skip to content

Fix/kanto deployments #511

Fix/kanto deployments

Fix/kanto deployments #511

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: 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 runtime_k3d/src/requirements.txt
pip install -r runtime_k3d/test/requirements.txt
pip install -r runtime_local/test/requirements.txt
- name: unit tests
shell: bash
run: |
pytest --ignore-glob='*integration*' --override-ini junit_family=xunit1 --junit-xml=./results/UnitTest/junit.xml \
--cov . \
--cov-report=xml:results/CodeCoverage/cobertura-coverage.xml \
--cov-branch ./runtime_k3d/test ./runtime_local/test ./desired_state_generator/test
- name: Publish Unit Test Results
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-local-integration-tests:
name: Run Integration Tests for local runtime
runs-on: ubuntu-22.04
env:
DAPR_HOST_IP: 127.0.0.1
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Prepare integration Tests
uses: ./.github/actions/prepare-int-tests
with:
package: runtime_local
- name: Run integration tests for runtime_local
run: |
cd runtime_local/test
pytest -s ./integration/integration_test.py
- name: Upload log files as artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: "Log files local"
path: runtime_local/test/logs
run-k3d-integration-tests:
name: Run Integration Tests for k3d
runs-on: ubuntu-22.04
env:
DAPR_HOST_IP: 127.0.0.1
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Prepare integration Tests
uses: ./.github/actions/prepare-int-tests
with:
package: runtime_k3d
- name: Install required packages
run: |
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
sudo wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s 1.10.0
- name: Run integration tests for k3d
run: |
cd runtime_k3d/test
pytest -s ./integration/integration_test.py::test_scripts_run_successfully_with_down
- name: Upload log files as artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: "Log files K3D"
path: runtime_k3d/test/logs
run-kanto-integration-tests:
name: Run Integration Tests for kanto
runs-on: ubuntu-22.04
env:
DOCKER_BUILDKIT: 1
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Prepare integration Tests
uses: ./.github/actions/prepare-int-tests
with:
package: runtime_kanto
- name: Install required packages
run: |
sudo apt-get update && sudo apt-get install -y mosquitto
wget https://github.com/eclipse-kanto/kanto/releases/download/v0.1.0-M3/kanto_0.1.0-M3_linux_x86_64.deb && \
sudo apt install ./kanto_0.1.0-M3_linux_x86_64.deb
- name: Stop Kanto services
run: |
sudo systemctl stop \
suite-connector.service \
container-management.service \
software-update.service \
file-upload.service \
file-backup.service \
system-metrics.service
sudo pkill -f mosquitto
- name: Run integration tests for kanto
run: |
cd runtime_kanto/test
# the socket on the ci is different to the devcontainer
sudo ln -s /run/containerd/containerd.sock /run/docker/containerd/containerd.sock
pytest -s -x ./integration/integration_test.py::test_scripts_run_successfully_with_down
- name: Upload log files as artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: "Log files Kanto"
path: |
runtime_kanto/test/logs
run-desired-state-generator-tests:
name: Run Integration Tests for desired state generator
runs-on: ubuntu-22.04
env:
DOCKER_BUILDKIT: 1
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Prepare integration Tests
uses: ./.github/actions/prepare-int-tests
with:
package: desired_state_generator
- name: Run integration tests for desired state generator
run: |
cd desired_state_generator/test
pytest -s -x ./integration/integration_test.py
- name: Upload log files as artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: "Log files Desired State Generator"
path: |
desired_state_generator/test/test/logs