diff --git a/.github/workflows/cloudbase_init_tests.yml b/.github/workflows/cloudbase_init_tests.yml new file mode 100644 index 00000000..7d59dbd4 --- /dev/null +++ b/.github/workflows/cloudbase_init_tests.yml @@ -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 + } diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml deleted file mode 100644 index 37259171..00000000 --- a/.github/workflows/unit_tests.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Cloudbase-Init unit tests - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-22.04 - strategy: - matrix: - python-version: ["3.8","3.9","3.10", "3.11"] - architecture: ["x64"] - - steps: - - name: Checkout cloudbase-init repository - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 - with: - python-version: ${{ matrix.python-version }} - architecture: ${{ matrix.architecture }} - - name: Install python3 tox - shell: bash - run: | - python3 -m pip install tox - - name: Run Cloudbase-Init unit tests with tox - shell: bash - run: | - tox run-parallel -e py3,pep8,cover,docs -v diff --git a/.stestr.conf b/.stestr.conf index 343936fd..19e8bf19 100644 --- a/.stestr.conf +++ b/.stestr.conf @@ -1,3 +1,3 @@ [DEFAULT] -test_path=${OS_TEST_PATH:-./cloudbaseinit/tests} +test_path=./cloudbaseinit/tests top_dir=./