Skip to content

Integration tests

Integration tests #29

##
## --------------------------------------------------------------------------------
## SPDX-FileCopyrightText: 2024 Martin Jan Köhler and Harald Pretl
## Johannes Kepler University, Institute for Integrated Circuits.
##
## This file is part of KPEX
## (see https://github.com/martinjankoehler/klayout-pex).
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
## SPDX-License-Identifier: GPL-3.0-or-later
## --------------------------------------------------------------------------------
##
name: "Integration tests"
on:
workflow_call:
workflow_dispatch:
pull_request:
branches: [ "main" ]
paths:
- '.github/workflows/integration-tests.yml'
env:
KLAYOUT_DEB: "klayout_0.29.10-1_amd64.deb"
KLAYOUT_URL: "https://www.klayout.org/downloads/Ubuntu-24/klayout_0.29.10-1_amd64.deb"
jobs:
run-tests:
name: "Run integration tests"
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: "Cache klayout deb 📦 download"
id: cache-klayout-deb
uses: actions/cache@v4
with:
path: klayout-deb
key: ${{ runner.os }}-klayout-deb
- name: "Download klayout deb 📦"
if: steps.cache-klayout-deb.outputs.cache-hit != 'true'
run: |
mkdir -p klayout-deb
pushd klayout-deb
wget "$KLAYOUT_URL"
popd
- name: "Install klayout APT dependencies"
run: |
sudo apt update
sudo apt install -y libstdc++6 libc6 python3.12 ruby3.2 libgit2-1.7
sudo apt install -y libqt5svg5 libqt5core5t64 libqt5designer5 libqt5gui5t64 libqt5multimedia5 libqt5multimediawidgets5 libqt5network5t64 libqt5opengl5t64 libqt5printsupport5t64 libqt5sql5t64 libqt5widgets5t64 libqt5xml5t64 libqt5xmlpatterns5
- name: "Install klayout deb 📦"
run: |
pushd klayout-deb
sudo dpkg -i $KLAYOUT_DEB
klayout -v
popd
# run-inside-docker:
# name: "Run tests"
# runs-on: ubuntu-latest
# continue-on-error: true
#
# steps:
# - uses: actions/checkout@v4
#
# - name: Generate Cache Key from Dockerfiles
# id: generate_cache_key
# run: |
# files="./tests/fixtures/docker-compose.yml"
# file_contents=$(cat $files)
# key=$(echo "${file_contents}" | sha1sum | awk '{print $1}')
# echo "key=${key}" >> "$GITHUB_OUTPUT"
#
# - name: "Cache Docker images"
# uses: ScribeMD/[email protected]
# with:
# key: docker-${{ runner.os }}-integration-tests-${{ steps.generate_cache_key.outputs.key }}
#
# - name: "Install Docker and run tests"
# uses: adambirds/[email protected]
# with:
# compose-file: "./tests/fixtures/docker-compose.yml"
# test-container: iic-osic-tools
# test-command: --skip ./run_integration_tests.sh
# continue-on-error: true # ensure docker cache is written nevertheless