From a43240e6105c6dabccc68e3895f809c3528d2067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Jan=20K=C3=B6hler?= Date: Wed, 11 Dec 2024 18:22:10 +0100 Subject: [PATCH] Add integration-tests.yml --- .github/workflows/integration-tests.yml | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/integration-tests.yml diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml new file mode 100644 index 00000000..3808150c --- /dev/null +++ b/.github/workflows/integration-tests.yml @@ -0,0 +1,63 @@ +## +## -------------------------------------------------------------------------------- +## 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 . +## SPDX-License-Identifier: GPL-3.0-or-later +## -------------------------------------------------------------------------------- +## + +name: "Integration tests on IIC-OSIC-TOOLS" + +on: + workflow_call: + pull_request: + branches: [ "main" ] + paths: + - '.github/workflows/integration-tests.yml' + +jobs: + tests-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/docker-cache@0.5.0 + with: + key: docker-${{ runner.os }}-integration-tests-${{ steps.generate_cache_key.outputs.key }} + + - name: "Install Docker and run tests" + uses: adambirds/docker-compose-action@v1.5.0 + 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 +