Skip to content

Add integration tests and make a distinction between public and private tests in Github CI #7

Add integration tests and make a distinction between public and private tests in Github CI

Add integration tests and make a distinction between public and private tests in Github CI #7

Workflow file for this run

# This workflow runs everything which is mostly harmless to run on an external PR
# because it does not requires secrets / access to external systems
name: Public Tests
on:
pull_request:
push:
branches:
- main
jobs:
run-tests:
strategy:
matrix:
os: [ubuntu-24.04]
python: ["3.11", "3.12"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
architecture: x64
- name: Install dependencies (and project)
run: |
pip install -U pip
pip install -e .[test,scripts]
- name: Run the tests
run: inv coverage-unit --args "-vvv"
- name: Upload coverage results for unit tests
if: matrix.python == '3.12'
uses: actions/upload-artifact@v4
with:
name: coverage-unit
path: coverage.xml
retention-days: 1
- name: Report coverage in PR
if: matrix.python == '3.12'
uses: insightsengineering/coverage-action@v2
with:
path: coverage.xml
publish: true
togglable-report: true
coverage-summary-title: "Unit tests coverage summary"
# - name: Upload coverage report to codecov
# if: matrix.python == '3.12'
# uses: codecov/codecov-action@v4
# with:
# fail_ci_if_error: true
# token: ${{ secrets.CODECOV_TOKEN }}
build_python:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: pyproject.toml
architecture: x64
- name: Ensure we can build Python targets
run: |
pip install -U pip build
python3 -m build --sdist --wheel
build_docker:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Ensure we can build the Docker image
run: |
docker build -t testimage .
- name: Ensure we can start the Docker image
run: |
docker run --rm testimage
# OR if image is a daemon process
# - name: Ensure we can start the Docker image
# run: |
# docker run --rm testimage
# sleep 5
# docker ps | grep test_container
# docker stop test_container