@@ -13,10 +13,10 @@ jobs:
1313 # ----------------------------------------------
1414 # check-out repo and set-up python
1515 # ----------------------------------------------
16- - uses : actions/checkout@v3
17- - uses : actions/setup-python@v4
16+ - uses : actions/checkout@v5
17+ - uses : actions/setup-python@v6
1818 with :
19- python-version : ' 3.10 '
19+ python-version : ' 3.11 '
2020 # ----------------------------------------------
2121 # load pip cache if cache exists
2222 # ----------------------------------------------
@@ -39,18 +39,21 @@ jobs:
3939 strategy :
4040 fail-fast : true
4141 matrix :
42- os : [' ubuntu-latest', ' macos-latest' ]
42+ os : [" ubuntu-latest", " macos-latest", "windows-latest" ]
4343 python-version : ['3.11']
4444 runs-on : ${{ matrix.os }}
45+ defaults :
46+ run :
47+ shell : bash
4548 steps :
4649 # ----------------------------------------------
4750 # check-out repo and set-up python
4851 # ----------------------------------------------
4952 - name : Check out repository
50- uses : actions/checkout@v3
53+ uses : actions/checkout@v5
5154
5255 - name : Set up Python
53- uses : actions/setup-python@v4
56+ uses : actions/setup-python@v6
5457 with :
5558 python-version : ${{ matrix.python-version }}
5659
@@ -70,22 +73,34 @@ jobs:
7073 # ----------------------------------------------
7174 # load cached venv if cache exists
7275 # ----------------------------------------------
73- - name : Cache Poetry dependencies
74- uses : actions/cache@v3
76+ - name : Cache Venv
77+ continue-on-error : true
78+ uses : actions/cache@v4
7579 with :
76- path : |
77- ~/.cache/pypoetry
78- .venv
79- key : poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
80+ path : .venv
81+ key : venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
8082 restore-keys : |
81- poetry -${{ runner.os }}-
83+ venv -${{ runner.os }}-
8284 # ----------------------------------------------
8385 # install dependencies if cache does not exist
8486 # ----------------------------------------------
8587 - name : Install dependencies
8688 run : poetry install --no-interaction --no-root
8789
88- - name : Run tests
90+ - name : Run tests (Linux)
91+ if : matrix.os == 'ubuntu-latest'
8992 run : |
9093 source .venv/bin/activate
91- pytest tests/
94+ pytest tests/
95+
96+ - name : Run tests (macOS - skip Docker tests)
97+ if : matrix.os == 'macos-latest'
98+ run : |
99+ source .venv/bin/activate
100+ pytest tests/ -m "not docker_required"
101+
102+ - name : Run tests (Windows - skip Docker tests)
103+ if : matrix.os == 'windows-latest'
104+ run : |
105+ source .venv/Scripts/activate
106+ pytest tests/ -m "not docker_required"
0 commit comments