Skip to content

Commit

Permalink
github_actions: add windows and functional testing
Browse files Browse the repository at this point in the history
 - add Linux unit testing for Python 3.8 and 3.11 (x64)
 - add Windows unit testing for Python 3.8 and 3.11 (x64 and x86)
 - add Windows functional testing for Python 3.11 (x64 and x86)

Change-Id: If4ca5a10f62e320c598f0bac7e1ec2ec52862c21
  • Loading branch information
ader1990 committed Nov 10, 2023
1 parent 6b2372d commit 07cae6e
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 29 deletions.
94 changes: 94 additions & 0 deletions .github/workflows/cloudbase_init_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Cloudbase-Init tests

env:
UPPER_CONSTRAINTS: "https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt"
TEST_RESOURCES: "https://github.com/cloudbase/cloudbase-init-test-resources"

on: [push, pull_request]

jobs:
linux-unit-tests:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
python-version: [ "3.11"]
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 -e py3,pep8,cover,docs
windows-unit-tests:
runs-on: windows-latest
strategy:
matrix:
python-version: [ "3.8", "3.11"]
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 run-parallel -e py3,pep8
windows-functional-tests:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: [ "3.11"]
architecture: ["x64", "x86"]
cloud: ["empty"]

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% 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: |
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
}
28 changes: 0 additions & 28 deletions .github/workflows/unit_tests.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .stestr.conf
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[DEFAULT]
test_path=${OS_TEST_PATH:-./cloudbaseinit/tests}
test_path=./cloudbaseinit/tests
top_dir=./

0 comments on commit 07cae6e

Please sign in to comment.