Files
cloudbase-init/.github/workflows/cloudbase_init_tests.yml
Adrian Vladu 4cbde8cac2 python: re-add support for 3.10
Currently, opendev gates still support testing Python version 3.10 and 3.13.

Change the setup.cfg and github gates accordingly, by re-adding 3.10 in
the test / support matrix.

Change-Id: Id47a3b6c41a7f755df5eaca33f1614fe57fde36b
Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
2025-12-19 09:22:30 +02:00

109 lines
3.7 KiB
YAML

name: Cloudbase-Init tests
env:
UPPER_CONSTRAINTS: "upper-constraints.txt"
TEST_RESOURCES: "https://github.com/cloudbase/cloudbase-init-test-resources"
TEST_RESOURCES_BRANCH: "master"
on: [push, pull_request]
jobs:
linux-unit-tests:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
python-version: [ "3.10", "3.12", "3.13"]
architecture: ["x64"]
steps:
- name: Checkout cloudbase-init repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Install python3 tox
shell: bash
run: |
python3 -m pip install tox setuptools --upgrade
- name: Run Cloudbase-Init unit tests with tox
shell: bash
run: |
tox run-parallel --parallel-live --parallel-no-spinner -e py3,pep8,cover,docs
windows-unit-tests:
runs-on: windows-latest
strategy:
matrix:
python-version: [ "3.10", "3.12", "3.13"]
architecture: ["x64", "x86"]
steps:
- name: Checkout cloudbase-init repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Install python3 tox
shell: cmd
run: |
python3 -m pip install tox setuptools --upgrade
- name: Run Cloudbase-Init unit tests with tox
shell: cmd
run: |
tox -e py3,pep8
windows-functional-tests:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: [ "3.13"]
architecture: ["x64", "x86"]
cloud: ["empty", "nocloud", "vmwareguest"]
steps:
- name: Checkout cloudbase-init repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Download external dependencies
shell: cmd
run: |
git clone %TEST_RESOURCES% -b %TEST_RESOURCES_BRANCH% test-resources
python -W ignore -m pip install --upgrade pip
- name: Install Cloudbase-Init
shell: cmd
run: |
python -W ignore -m pip install -c %UPPER_CONSTRAINTS% -U --force-reinstall -r requirements.txt
python -W ignore -m pip install .
- name: Run Cloudbase-Init functional tests
shell: powershell
run: |
Install-Module -Force -AllowClobber -Confirm:$false "Pester"
$ENV:CLOUD = "${{ matrix.cloud }}"
$ENV:TEST_ARCHITECTURE = "${{ matrix.architecture }}"
Invoke-Pester test-resources/functional-tests -Output Detailed -FullNameFilter TestVerifyBeforeAllPlugins
try {
& cmd /c "cloudbase-init.exe --noreset_service_password --config-file ./test-resources/${{ matrix.cloud }}/cloudbase-init.conf 2>&1" | Tee-Object -FilePath cloudbase-init.log
} catch {}
$errors = $(cat ./cloudbase-init.log | Where-Object {$_ -like "*error*"})
$pluginExecution = $(cat ./cloudbase-init.log | Where-Object {$_ -like "*Plugins execution done*"})
if ($errors -or !$pluginExecution) {
exit 1
}
Invoke-Pester test-resources/functional-tests -Output Detailed -FullNameFilter TestVerifyAfterAllPlugins
- name: Audit Cloudbase-Init pip packages
shell: powershell
run: |
python -W ignore -m pip install pip-audit
pip-audit.exe
if ($LASTEXITCODE) {
exit 1
}