mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-10-08 07:15:27 +02:00
63 lines
2.2 KiB
YAML
63 lines
2.2 KiB
YAML
name: python-test
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "salt/sensoroni/files/analyzers/**"
|
|
- "salt/manager/tools/sbin/**"
|
|
- "salt/_beacons/**"
|
|
- "salt/elastalert/files/modules/**"
|
|
- "salt/telegraf/tools/sbin_jinja/**"
|
|
- "salt/telegraf/defaults.yaml"
|
|
- "salt/telegraf/soc_telegraf.yaml"
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.14"]
|
|
python-code-path: ["salt/sensoroni/files/analyzers", "salt/manager/tools/sbin", "salt/_beacons", "salt/elastalert/files/modules/so"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v3
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install flake8 pytest pytest-cov
|
|
find . -name requirements.txt -exec pip install -r {} \;
|
|
- name: Lint with flake8
|
|
run: |
|
|
flake8 ${{ matrix.python-code-path }} --show-source --max-complexity=12 --doctests --max-line-length=200 --statistics
|
|
- name: Test with pytest
|
|
run: |
|
|
PYTHONPATH=${{ matrix.python-code-path }} pytest ${{ matrix.python-code-path }} --cov=${{ matrix.python-code-path }} --doctest-modules --cov-report=term --cov-fail-under=100 --cov-config=pytest.ini
|
|
|
|
telegraf-collector:
|
|
# so-container-stats is a jinja template rather than an importable module, so it gets its
|
|
# own job: the test renders it the way salt does, then drives it with a faked docker engine
|
|
# and cgroup tree. No container runtime is needed.
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v3
|
|
with:
|
|
python-version: "3.14"
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install flake8 pytest jinja2 pyyaml
|
|
- name: Lint with flake8
|
|
run: |
|
|
flake8 salt/telegraf/tools/sbin_jinja/so-container-stats_test.py --config=pytest.ini
|
|
- name: Test with pytest
|
|
run: |
|
|
pytest salt/telegraf/tools/sbin_jinja/so-container-stats_test.py -v
|