diff --git a/.github/workflows/Parameters.yml b/.github/workflows/Parameters.yml index 128ca36..57ffb43 100644 --- a/.github/workflows/Parameters.yml +++ b/.github/workflows/Parameters.yml @@ -38,7 +38,7 @@ on: system_list: description: 'Space separated list of systems to run tests on.' required: false - default: 'ubuntu windows macos' + default: 'ubuntu windows msys2 macos' type: string name: description: 'Name of the tool.' @@ -93,20 +93,23 @@ jobs: '3.10': { 'icon': '🟢', 'until': '2026.10' }, }, 'sys': { - 'ubuntu': '🐧', - 'windows': '🧊', - 'macos': '🍎', + 'ubuntu': { 'icon': '🐧', 'runs-on': 'ubuntu-latest', 'shell': 'bash' }, + 'windows': { 'icon': '🧊', 'runs-on': 'windows-latest', 'shell': 'pwsh' }, + 'msys2': { 'icon': '🟦', 'runs-on': 'windows-latest', 'shell': 'msys2 {0}' }, + 'macos': { 'icon': '🍎', 'runs-on': 'macos-latest', 'shell': 'bash' } } } jobs = [ { - 'sysicon': data['sys'][system], + 'sysicon': data['sys'][system]['icon'], 'system': system, + 'runs-on': data['sys'][system]['runs-on'], + 'shell': data['sys'][system]['shell'], 'pyicon': data['python'][version]['icon'], 'python': version } for system in systems - for version in versions + for version in (versions if system != 'msys2' else ['3.9']) ] print(f'::set-output name=python_jobs::{jobs!s}') print("Python jobs:") diff --git a/.github/workflows/UnitTesting.yml b/.github/workflows/UnitTesting.yml index 7a88ddf..5184b7a 100644 --- a/.github/workflows/UnitTesting.yml +++ b/.github/workflows/UnitTesting.yml @@ -49,18 +49,31 @@ jobs: UnitTesting: name: ${{ matrix.sysicon }} ${{ matrix.pyicon }} Unit Tests using Python ${{ matrix.python }} - runs-on: ${{ matrix.system }}-latest + runs-on: ${{ matrix.runs-on }} strategy: fail-fast: false matrix: include: ${{ fromJson(inputs.jobs) }} + defaults: + run: + shell: ${{ matrix.shell }} + steps: - name: ⏬ Checkout repository uses: actions/checkout@v2 - - name: 🐍 Setup Python ${{ matrix.python }} + - if: matrix.system == 'msys2' + name: '🟦 Setup MSYS2' + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + pacboy: python-pip:p + + - if: matrix.system != 'msys2' + name: 🐍 Setup Python ${{ matrix.python }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} @@ -71,7 +84,6 @@ jobs: python -m pip install ${{ inputs.requirements }} - name: ☑ Run unit tests - shell: bash run: | [ 'x${{ inputs.artifact }}' != 'x' ] && PYTEST_ARGS='--junitxml=TestReport.xml' || unset PYTEST_ARGS python -m pytest -rA ${{ inputs.unittest_directory }} $PYTEST_ARGS --color=yes diff --git a/ExamplePipeline.yml b/ExamplePipeline.yml index 75c2745..c3ba577 100644 --- a/ExamplePipeline.yml +++ b/ExamplePipeline.yml @@ -34,7 +34,7 @@ jobs: with: name: ToolName # Optional - system_list: 'ubuntu windows macos' + system_list: 'ubuntu windows msys2 macos' python_version: '3.10' python_version_list: '3.8 3.9 3.10'