mirror of
https://github.com/linux-system-roles/network.git
synced 2026-07-18 00:46:05 +00:00
tox-lsr 3.17.1 has a fix for the broken container tests There was one shell function for both setting up the callback plugins and the connection plugin. When this function was skipped, the ANSIBLE_CONNECTION_PLUGINS environment variable was not set, so all subsequent tests failed. The connection plugin must be present and the env. var. must be set in order to run any container tests. The code was fixed to ensure that there is always a connection plugin installed in the correct location and that ANSIBLE_CONNECTION_PLUGINS is always set and contains this path. Also, setting up the callback plugins and the connection plugin is already idempotent, so no reason to skip them. Signed-off-by: Rich Megginson <rmeggins@redhat.com>
106 lines
3.2 KiB
YAML
106 lines
3.2 KiB
YAML
---
|
|
# yamllint disable rule:line-length
|
|
name: Python Unit Tests
|
|
on: # yamllint disable-line rule:truthy
|
|
pull_request:
|
|
merge_group:
|
|
branches:
|
|
- main
|
|
types:
|
|
- checks_requested
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
permissions:
|
|
contents: read
|
|
jobs:
|
|
python:
|
|
if: |
|
|
!((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) ||
|
|
(github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]')))
|
|
strategy:
|
|
matrix:
|
|
pyver_os:
|
|
- ver: "2.7"
|
|
os: ubuntu-22.04
|
|
- ver: "3.9"
|
|
os: ubuntu-latest
|
|
- ver: "3.10"
|
|
os: ubuntu-latest
|
|
- ver: "3.11"
|
|
os: ubuntu-latest
|
|
- ver: "3.12"
|
|
os: ubuntu-latest
|
|
- ver: "3.13"
|
|
os: ubuntu-latest
|
|
runs-on: ${{ matrix.pyver_os.os }}
|
|
steps:
|
|
- name: Update git
|
|
run: |
|
|
set -euxo pipefail
|
|
sudo apt update
|
|
sudo apt install -y git
|
|
|
|
- name: checkout PR
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Set up Python 2.7
|
|
if: ${{ matrix.pyver_os.ver == '2.7' }}
|
|
run: |
|
|
set -euxo pipefail
|
|
sudo apt install -y python2.7
|
|
|
|
- name: Set up Python 3
|
|
if: ${{ matrix.pyver_os.ver != '2.7' }}
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: ${{ matrix.pyver_os.ver }}
|
|
|
|
- name: Install platform dependencies, python, tox, tox-lsr
|
|
run: |
|
|
set -euxo pipefail
|
|
python -m pip install --upgrade pip
|
|
if [ "${{ matrix.pyver_os.ver }}" = 2.7 ]; then
|
|
# newer virtualenv cannot create python2 venvs
|
|
# newer tox requires newer virtualenv
|
|
tox='tox<4.15'
|
|
virtualenv='virtualenv<20.22.0'
|
|
else
|
|
tox=tox
|
|
virtualenv=virtualenv
|
|
fi
|
|
pip install "$tox" "$virtualenv" "git+https://github.com/linux-system-roles/tox-lsr@3.17.1"
|
|
# If you have additional OS dependency packages e.g. libcairo2-dev
|
|
# then put them in .github/config/ubuntu-requirements.txt, one
|
|
# package per line.
|
|
if [ -f .github/config/ubuntu-requirements.txt ]; then
|
|
sudo apt-get install -y $(cat .github/config/ubuntu-requirements.txt)
|
|
fi
|
|
|
|
- name: Run unit tests
|
|
run: |
|
|
set -euxo pipefail
|
|
toxpyver=$(echo "${{ matrix.pyver_os.ver }}" | tr -d .)
|
|
toxenvs="py${toxpyver}"
|
|
# NOTE: The use of flake8, pylint, black with specific
|
|
# python envs is arbitrary and must be changed in tox-lsr
|
|
case "$toxpyver" in
|
|
311) toxenvs="${toxenvs},coveralls,flake8,pylint,black" ;;
|
|
*) toxenvs="${toxenvs},coveralls" ;;
|
|
esac
|
|
TOXENV="$toxenvs" lsr_ci_runtox
|
|
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
|
|
python-26:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout PR
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Run py26 tests
|
|
uses: linux-system-roles/lsr-gh-action-py26@1.0.2
|
|
env:
|
|
TOX_LSR: "git+https://github.com/linux-system-roles/tox-lsr@2.13.2"
|