-
Notifications
You must be signed in to change notification settings - Fork 167
71 lines (69 loc) · 2.35 KB
/
reusable-unit-tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
name: reusable unit tests
on:
workflow_call:
inputs:
python-version:
type: string
required: true
branch:
type: string
required: false
jobs:
build:
runs-on: ubuntu-22.04
continue-on-error: false
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install system dependencies
run: |
sudo apt-get install -yq libow-dev openssh-server openssh-client graphviz openocd
sudo mkdir -p /var/cache/labgrid/runner && sudo chown runner /var/cache/labgrid/runner
- name: Prepare local SSH
run: |
# the default of 777 is too open for SSH
chmod 755 ~
ssh-keygen -f ~/.ssh/id_ed25519.local -t ed25519 -N ""
cat ~/.ssh/id_ed25519.local.pub >> ~/.ssh/authorized_keys
echo -e "Host localhost ip6-localhost\n Hostname 127.0.0.1\n IdentityFile ~/.ssh/id_ed25519.local\n UserKnownHostsFile ~/.ssh/known_hosts.local" >> ~/.ssh/config
ssh -o StrictHostKeyChecking=no localhost echo OK
- name: Install python dependencies
run: |
python -m pip install --upgrade pip virtualenv
- name: Install labgrid
run: |
pip install -e ".[dev]"
- name: Lint with pylint
if: inputs.python-version != '3.8'
run: |
pylint --list-msgs-enabled
pylint labgrid
- name: Format with ruff
run: |
ruff format --check --diff labgrid/remote/
- name: Test with pytest
run: |
pytest --cov-config .coveragerc --cov=labgrid --local-sshmanager --ssh-username runner -k "not test_docker_with_daemon"
- name: Build documentation
run: |
make -C doc clean
make -C doc doctest SPHINXOPTS=-W
make -C doc html SPHINXOPTS=-W
make -C man clean
make -C man all
git --no-pager diff --exit-code
# check README.rst separately
pip install rstcheck
rstcheck --ignore-languages=bash --report-level=WARNING README.rst
- uses: codecov/codecov-action@v3