diff --git a/.github/workflows/tests.yml b/.github/workflows/unit-tests.yml similarity index 60% rename from .github/workflows/tests.yml rename to .github/workflows/unit-tests.yml index b63ce2fb..b0bad8d9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,12 +1,13 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python +# This workflow will install Python dependencies, run tests and lint with a several version of Python # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python -name: run tests +name: Run unit tests on: push: branches: [ "main" ] pull_request: + workflow_dispatch: permissions: contents: read @@ -15,15 +16,22 @@ jobs: build: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: >- + ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') + && fromJSON(vars.PYTHON_ALL_SUPPORTED_TEST_VERSIONS) + || fromJSON(vars.PYTHON_DEFAULT_TEST_VERSIONS) }} steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Set up Python 3.12 - uses: actions/setup-python@v3 + - uses: actions/checkout@v6 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v7 with: - python-version: ">=3.12" + python-version: ${{ matrix.python-version }} + - name: Install dependencies run: | python -m pip install --upgrade pip @@ -31,11 +39,16 @@ jobs: pip install ./tests/dummy_cs/tango-pyaml pip install ./tests/external pip install flake8 + + - name: Display Python version + run: python -c "import sys; print(sys.version)" + - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest run: python -m pytest tests