diff --git a/.github/workflows/test-and-lint.yml b/.github/workflows/test-and-lint.yml index 1ae62c8640..7f5ed16f12 100644 --- a/.github/workflows/test-and-lint.yml +++ b/.github/workflows/test-and-lint.yml @@ -1,56 +1,73 @@ -name: tests +name: Pytest, Flake8, Black on: pull_request: - branches: ["main", "major-release"] + paths: + - .github/workflows/test-pytest-flake-black.yml + - requirements*.txt + - "**.py" + - .flake8 + - setup.py + - pytest.ini push: - branches: ["main", "major-release"] + paths: + - .github/workflows/test-pytest-flake-black.yml + - requirements*.txt + - "**.py" + - .flake8 + - setup.py + - pytest.ini env: TESTING: 1 jobs: - build: + test_and_lint: strategy: + fail-fast: false matrix: - python-version: ['3.8', '3.9', '3.10'] - limited-dependencies: ['','TRUE'] - os: [ubuntu-latest] # add in windows-latest to add windows testing + python-version: + - "3.10" + - "3.9" + - "3.8" + limited-dependencies: + - "" + - "TRUE" + os: + - ubuntu-latest include: - - os: ubuntu-latest - path: ~/.cache/pip -# - os: windows-latest -# path: ~\AppData\Local\pip\Cache + - os: macos-latest + python-version: "3.10" + - os: macos-latest + python-version: "3.10" + limited-dependencies: true + - os: macos-latest + python-version: "3.8" + - os: macos-latest + python-version: "3.8" + limited-dependencies: true runs-on: ${{ matrix.os }} - steps: - - - uses: actions/checkout@v3 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - - uses: actions/cache@v3 - with: - path: ${{ matrix.path }} - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Install dependencies - env: - PARSONS_LIMITED_DEPENDENCIES: ${{ matrix.limited-dependencies }} - run: | - python -m pip install .[all] - python -m pip install -r requirements-dev.txt - - - name: Run tests - run: pytest -rf test/ - - - name: check linting - run: | - # E203 and W503 don't work well with black - flake8 parsons/ test/ useful_resources/ --extend-ignore=E203,W503 - black --check parsons/ test/ useful_resources/ + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: pip + - name: Install uv + run: | + pip install -U uv + - name: Install dependencies + env: + PARSONS_LIMITED_DEPENDENCIES: ${{ matrix.limited-dependencies }} + run: | + uv pip install --system -U pip + uv pip install --system -e .[all] + uv pip install --system -r requirements-dev.txt + - name: Run tests + run: pytest -rf test/ + - name: check linting + run: | + # E203 and W503 don't work well with black + flake8 parsons/ test/ useful_resources/ --extend-ignore=E203,W503 + black --check parsons/ test/ useful_resources/ diff --git a/.github/workflows/tests-mac.yml b/.github/workflows/tests-mac.yml deleted file mode 100644 index 012025a520..0000000000 --- a/.github/workflows/tests-mac.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: tests for mac -# test mac on single python version as mac tests use 10x minutes/storage - -on: - pull_request: - branches: ["main", "major-release"] - push: - branches: ["main", "major-release"] - -env: - TESTING: 1 - -jobs: - build: - strategy: - matrix: - limited-dependencies: ['','TRUE'] - runs-on: macos-latest - - steps: - - - uses: actions/checkout@v3 - - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - - uses: actions/cache@v3 - with: - path: ~/Library/Caches/pip - key: mac-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - mac-pip- - - - name: Install dependencies - env: - PARSONS_LIMITED_DEPENDENCIES: ${{ matrix.limited-dependencies }} - run: | - python -m pip install .[all] - python -m pip install -r requirements-dev.txt - - - name: Run tests - run: TESTING=1 pytest -rf test/ - - - name: check linting - run: | - # E203 and W503 don't work well with black - flake8 parsons/ test/ useful_resources/ --extend-ignore=E203,W503 - black --check parsons/ test/ useful_resources/