Add MacOS tests to actions

This commit is contained in:
Orsiris de Jong 2025-06-29 16:23:36 +02:00
parent 4941838243
commit 0dc9409f55
2 changed files with 92 additions and 0 deletions

37
.github/workflows/macos.yaml vendored Normal file
View file

@ -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

55
.github/workflows/pylint-macos.yaml vendored Normal file
View file

@ -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