Avoid side effects #26
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Compatibility Matrix | |
on: | |
push: | |
branches: | |
- github-ci | |
# workflow_dispatch: | |
jobs: | |
CompatibilityMatrix: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.12', '3.13.0-rc.1'] | |
update-strategy: [minor, major] | |
update-method: [update, fresh] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Get Python version | |
id: python_version | |
run: | | |
python --version | |
- name: Install Poetry | |
run: | | |
pip install poetry | |
- name: Backup lock file | |
if: matrix.update-method == 'fresh' | |
run: | | |
if [ -f poetry.lock ]; then | |
mv poetry.lock poetry.lock.backup | |
fi | |
- name: Install and update dependencies | |
run: | | |
if [[ "${{ matrix.update-strategy }}" == "minor" ]]; then | |
echo "Updating to minor versions" | |
poetry install --with dev | |
poetry update | |
elif [[ "${{ matrix.update-strategy }}" == "major" ]]; then | |
echo "Updating to major versions" | |
sed -i 's/\^/>=/g' pyproject.toml # Adjust constraints to allow major updates | |
poetry install --with dev | |
poetry update | |
fi | |
- name: Restore lock file | |
if: matrix.update-method == 'fresh' | |
run: | | |
if [ -f poetry.lock.backup ]; then | |
mv poetry.lock.backup poetry.lock | |
fi | |
- name: Run tests | |
run: | | |
poetry run pytest | |
continue-on-error: false # Set to true if you want to continue on test failures |