Skip to content

Merge pull request #165 from ChannelFinder/feat/per-ioc-locking #443

Merge pull request #165 from ChannelFinder/feat/per-ioc-locking

Merge pull request #165 from ChannelFinder/feat/per-ioc-locking #443

Workflow file for this run

name: recceiver
on:
push:
branches: [ "*" ]
paths:
- server/**
pull_request:
branches: [ "master" ]
paths:
- server/**
jobs:
build-server:
runs-on: ubuntu-latest
container: ${{ matrix.container }}
strategy:
matrix:
include:
- python-version: "3.6"
container: "python:3.6"
- python-version: "3.7"
container: "python:3.7"
- python-version: "3.8"
- python-version: "3.9"
- python-version: "3.10"
- python-version: "3.11"
- python-version: "3.12"
- python-version: "3.13"
- python-version: "3.14"
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
if: ${{ !matrix.container }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: |
minor=$(python3 --version | cut -d. -f2)
if [ "$minor" -ge 7 ]; then
python -m pip install --upgrade "pip==24.0" --only-binary=:all:
else
python -m pip install --upgrade "pip==21.3.1" --only-binary=:all:
fi
python -m pip install --no-deps .
test-unit:
runs-on: ubuntu-latest
needs: build-server
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade "pip==24.0" --only-binary=:all:
python -m pip install --only-binary=:all: -r requirements-ci-py39.txt
python -m pip install --no-deps .
- name: Test unit tests
run: |
set -o pipefail
pytest tests/unit -v --cov=recceiver --cov-report=xml:coverage.xml 2>&1 | tee pytest-unit.log
- name: Upload test log
if: always()
uses: actions/upload-artifact@v4
with:
name: pytest-unit-log
path: server/pytest-unit.log
retention-days: 14
- name: Upload coverage report
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-xml
path: server/coverage.xml
retention-days: 14
test-integration:
runs-on: ubuntu-latest
needs: build-server
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install '.[test]'
python -m pip install .
- name: Test integration tests
run: |
set -o pipefail
pytest tests/integration -v 2>&1 | tee pytest-integration.log
- name: Upload test log
if: always()
uses: actions/upload-artifact@v4
with:
name: pytest-integration-log
path: server/pytest-integration.log
retention-days: 14
test-container:
runs-on: ubuntu-latest
needs: build-server
defaults:
run:
working-directory: server
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install '.[test]'
python -m pip install .
- name: Test container tests
run: |
set -o pipefail
pytest tests/container -v 2>&1 | tee pytest-container.log
- name: Upload test log
if: always()
uses: actions/upload-artifact@v4
with:
name: pytest-container-log
path: server/pytest-container.log
retention-days: 14