diff --git a/.github/workflows/macos.yaml b/.github/workflows/macos.yaml new file mode 100644 index 0000000..0645ca8 --- /dev/null +++ b/.github/workflows/macos.yaml @@ -0,0 +1,37 @@ +name: macos-tests + +on: [push, pull_request] + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + # Python 3.3 and 3.4 have been removed since github won't provide these anymore + # As of 2023/01/09, we have removed python 3.5 and 3.6 as they don't work anymore with linux on github actions + # As of 2023/08/30, we have removed python 2.7 since github actions won't provide it anymore + # As of 2024/09/15, we have (temporarily) removed 'pypy-3.10' and 'pypy-3.8' since msgspec won't compile properly + # As of 2024/12/24, we have remove python 3.7 as they don't work anymore with linux on github actions + python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade setuptools + if [ -f npbackup/requirements.txt ]; then pip install -r npbackup/requirements.txt; fi + - name: Generate Report + env: + RUNNING_ON_GITHUB_ACTIONS: true + run: | + pip install pytest coverage + python -m coverage run -m pytest -vvs tests + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v3 diff --git a/.github/workflows/pylint-macos.yaml b/.github/workflows/pylint-macos.yaml new file mode 100644 index 0000000..d71770c --- /dev/null +++ b/.github/workflows/pylint-macos.yaml @@ -0,0 +1,55 @@ +name: pylint-macos-tests + +# Quick and dirty pylint + +# pylint --disable=C,W1201,W1202,W1203,W0718,W0621,W0603,R0801,R0912,R0913,R0915,R0911,R0914,R0911,R1702,R0902,R0903,R0904 npbackup + +on: [push, pull_request] + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + # python-version: [3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10", 'pypy-3.6', 'pypy-3.7'] + python-version: ["3.13"] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade setuptools + if [ -f npbackup/requirements.txt ]; then python -m pip install -r npbackup/requirements.txt; fi + if [ -f upgrade_server/requirements.txt ]; then python -m pip install -r upgrade_server/requirements.txt; fi + - name: Lint with Pylint + #if: ${{ matrix.python-version == '3.11' }} + run: | + python -m pip install pylint + # Do not run pylint on python 3.3 because isort is not available for python 3.3, don't run on python 3.4 because pylint: disable=xxxx does not exist + # Disable E0401 import error since we lint on linux and pywin32 is obviously missing + python -m pylint --disable=C,W,R --max-line-length=127 npbackup + python -m pylint --disable=C,W,R --max-line-length=127 upgrade_server/upgrade_server + - name: Lint with flake8 + #if: ${{ matrix.python-version == '3.11' }} + run: | + python -m pip install flake8 + # stop the build if there are Python syntax errors or undefined names + python -m flake8 --count --select=E9,F63,F7,F82 --show-source --statistics npbackup + python -m flake8 --count --select=E9,F63,F7,F82 --show-source --statistics upgrade_server/upgrade_server + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + python -m flake8 --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics npbackup + python -m flake8 --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics upgrade_server + - name: Lint with Black + # Don't run on python < 3.6 since black does not exist there, run only once + #if: ${{ matrix.python-version == '3.11' }} + run: | + pip install black + python -m black --check npbackup + python -m black --check upgrade_server/upgrade_server \ No newline at end of file