[6.14.z][Combined Jenkins Ask] Capsule testing for sanity (#15948) #15797
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 }} | |
ROBOTTELO_JIRA__API_KEY: ${{ secrets.JIRA_KEY }} | |
jobs: | |
codechecks: | |
name: Code Quality | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.10', '3.11', '3.12'] | |
env: | |
UV_CACHE_DIR: /tmp/.uv-cache | |
UV_SYSTEM_PYTHON: 1 | |
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: Set up uv | |
run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Restore uv cache | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.uv-cache | |
key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }} | |
restore-keys: | | |
uv-${{ runner.os }}-${{ hashFiles('uv.lock') }} | |
uv-${{ runner.os }} | |
- name: Install Dependencies | |
run: | | |
sudo apt update | |
sudo apt-get install -y libgnutls28-dev libcurl4-openssl-dev libssl-dev | |
# 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 | |
uv pip uninstall pycurl | |
uv pip install --compile --no-cache-dir pycurl | |
uv pip install -r requirements.txt -r requirements-optional.txt | |
for conffile in conf/*.yaml.template; do mv -- "$conffile" "${conffile%.yaml.template}.yaml"; done | |
cp .env.example .env | |
- name: Minimize uv cache | |
run: uv cache prune --ci | |
- 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 | |
export ROBOTTELO_SERVER__HOSTNAME="" | |
pytest -sv tests/robottelo/ | |
- name: Make Docs | |
run: | | |
make test-docstrings | |
make docs | |
- name: Analysis (git diff) | |
if: failure() | |
run: git diff |