diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index 5568024..061a7f3 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -37,7 +37,7 @@ on: requirements: description: 'Python dependencies to be installed through pip.' required: false - default: '-r tests/requirements.txt' + default: '-r ./requirements.txt' type: string pacboy: description: 'MSYS2 dependencies to be installed through pacboy (pacman).' @@ -94,6 +94,39 @@ jobs: name: ${{ inputs.wheel }} path: install + # TODO: extract step to an Action so package, so code can be shared with UnitTesting.yml + - name: Compute path to requirements file + id: requirements + shell: python + run: | + from os import getenv + from pathlib import Path + from sys import version + + print(f"Python: {version}") + + requirements = "${{ inputs.requirements }}" + if requirements.startswith("-r"): + requirements = requirements[2:].lstrip() + if requirements.startswith("./"): + requirementsFile = Path("${{ inputs.root_directory || '.' }}") / Path("${{ inputs.tests_directory || '.' }}") / Path("${{ inputs.apptest_directory || '.' }}") / Path(requirements[2:]) + else: + requirementsFile = Path(requirements) + + if not requirementsFile.exists(): + print(f"::error title=FileNotFoundError::{requirementsFile}") + exit(1) + + print(f"requirements file: {requirementsFile.as_posix()}") + + # Write requirements path to special file + github_output = Path(getenv("GITHUB_OUTPUT")) + print(f"GITHUB_OUTPUT: {github_output}") + with github_output.open("a+") as f: + f.write(f"requirements=-r {requirementsFile.as_posix()}\n") + else: + print(f"requirements list: {requirements}") + # TODO: extract step to an Action so package lists are shared with UnitTesting (and GHDL?) - name: Compute pacman/pacboy packages id: pacboy @@ -122,7 +155,7 @@ jobs: return requirements - requirements = "${{ inputs.requirements }}" + requirements = "${{ steps.requirements.outputs.requirements }}" if requirements.startswith("-r"): requirementsFile = Path(requirements[2:].lstrip()) try: @@ -191,6 +224,8 @@ jobs: with github_output.open("a+") as f: f.write(f"pacboy_packages={' '.join(pacboyPackages)}\n") +# Python setup + - name: '🟦 Setup MSYS2 for ${{ matrix.runtime }}' uses: msys2/setup-msys2@v2 if: matrix.system == 'msys2' @@ -207,6 +242,8 @@ jobs: with: python-version: ${{ matrix.python }} +# Python Dependency steps + - name: 🔧 Install wheel and pip dependencies (native) if: matrix.system != 'msys2' run: | @@ -222,6 +259,8 @@ jobs: python -m pip install --disable-pip-version-check --break-system-packages ${{ inputs.requirements }} fi +# TODO: Before scripts? + - name: 🔧 Install wheel from artifact (Ubuntu/macOS) if: ( matrix.system != 'windows' && matrix.system != 'windows-arm' ) run: | @@ -232,6 +271,8 @@ jobs: run: | python -m pip install -v --disable-pip-version-check (Get-Item .\install\*.whl).FullName +# Run pytests + - name: ✅ Run application tests (Ubuntu/macOS) if: ( matrix.system != 'windows' && matrix.system != 'windows-arm' ) run: | @@ -262,6 +303,8 @@ jobs: python -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.apptest_directory }} } +# Upload artifacts + - name: 📤 Upload 'TestReportSummary.xml' artifact if: inputs.apptest_xml_artifact != '' uses: pyTooling/upload-artifact@v6 diff --git a/.github/workflows/UnitTesting.yml b/.github/workflows/UnitTesting.yml index a82ea18..f06811d 100644 --- a/.github/workflows/UnitTesting.yml +++ b/.github/workflows/UnitTesting.yml @@ -215,6 +215,7 @@ jobs: # run: | # py -3.12 -m pip install --disable-pip-version-check --break-system-packages -U tomli + # TODO: extract step to an Action so package, so code can be shared with AppTesting.yml - name: Compute path to requirements file id: requirements shell: python @@ -247,6 +248,7 @@ jobs: else: print(f"requirements list: {requirements}") + # TODO: extract step to an Action so package lists are shared with UnitTesting (and GHDL?) - name: Compute pacman/pacboy packages id: pacboy if: matrix.system == 'msys2' diff --git a/myPackage/__init__.py b/myPackage/__init__.py index c612d11..62f6eda 100644 --- a/myPackage/__init__.py +++ b/myPackage/__init__.py @@ -36,7 +36,7 @@ __author__ = "Patrick Lehmann" __email__ = "Paebbels@gmail.com" __copyright__ = "2017-2026, Patrick Lehmann" __license__ = "Apache License, Version 2.0" -__version__ = "7.4.1" +__version__ = "7.4.2" __keywords__ = ["GitHub Actions"] __issue_tracker__ = "https://GitHub.com/pyTooling/Actions/issues"