Add test coverage for BZ:2192939 #11583
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# CI stages to execute against Pull Requests | |
name: Robottelo - CI | |
on: | |
pull_request: | |
types: ["opened", "synchronize", "reopened"] | |
env: | |
PYCURL_SSL_LIBRARY: openssl | |
ROBOTTELO_BUGZILLA__API_KEY: ${{ secrets.BUGZILLA_KEY }} | |
jobs: | |
codechecks: | |
name: Code Quality | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- name: Checkout Robottelo | |
uses: actions/checkout@v4 | |
- name: Set Up Python-${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Dependencies | |
run: | | |
sudo apt update | |
sudo apt-get install -y libgnutls28-dev libcurl4-openssl-dev libssl-dev | |
wget https://raw.githubusercontent.com/SatelliteQE/broker/master/broker_settings.yaml.example | |
# link vs compile time ssl implementations can break the environment when installing requirements | |
# Uninstall pycurl - its likely not installed, but in case the ubuntu-latest packages change | |
# Then compile and install it with PYCURL_SSL_LIBRARY set to openssl | |
pip install -U pip wheel | |
pip uninstall -y pycurl | |
pip install --compile --no-cache-dir pycurl | |
pip install -U --no-cache-dir -r requirements.txt -r requirements-optional.txt | |
for conffile in conf/*.yaml.template; do mv -- "$conffile" "${conffile%.yaml.template}.yaml"; done | |
cp broker_settings.yaml.example broker_settings.yaml | |
cp .env.example .env | |
- name: Pre Commit Checks | |
uses: pre-commit/[email protected] | |
- name: Collect Tests | |
run: | | |
# To skip vault login in pull request checks | |
export VAULT_SECRET_ID_FOR_DYNACONF=somesecret | |
pytest --collect-only --disable-pytest-warnings tests/foreman/ tests/robottelo/ | |
pytest --collect-only --disable-pytest-warnings -m pre_upgrade tests/upgrades/ | |
pytest --collect-only --disable-pytest-warnings -m post_upgrade tests/upgrades/ | |
- name: Collect Tests with xdist | |
run: | | |
# To skip vault login in pull request checks | |
export VAULT_SECRET_ID_FOR_DYNACONF=somesecret | |
pytest --collect-only --setup-plan --disable-pytest-warnings -n 2 tests/foreman/ tests/robottelo/ | |
pytest --collect-only --setup-plan --disable-pytest-warnings -n 2 -m pre_upgrade tests/upgrades/ | |
pytest --collect-only --setup-plan --disable-pytest-warnings -n 2 -m post_upgrade tests/upgrades/ | |
- name: Run Robottelo's Tests | |
run: | | |
# To skip vault login in pull request checks | |
export VAULT_SECRET_ID_FOR_DYNACONF=somesecret | |
pytest -sv tests/robottelo/ | |
- name: Make Docs | |
run: | | |
make test-docstrings | |
make docs | |
- name: Analysis (git diff) | |
if: failure() | |
run: git diff |