Skip to content

Test on Windows and MacOS #15

Test on Windows and MacOS

Test on Windows and MacOS #15

name: Test MSS
on:
push:
pull_request:
jobs:
Test-MSS:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["macos-12", "macos-14", "ubuntu-latest", "windows-latest"]
order: ["normal", "reverse"]
steps:
- uses: actions/checkout@v4
- name: Build requirements.txt file
run: |
cat localbuild/meta.yaml |
sed -n '/^requirements:/,/^test:/p' |
sed -e "s/.*- //" |
sed -e "s/menuinst.*//" |
sed -e "s/.*://" > requirements.tmp.txt
cat requirements.d/development.txt >> requirements.tmp.txt
sed -e '/^$/d' -e '/^#.*$/d' requirements.tmp.txt > requirements.txt
rm requirements.tmp.txt
cat requirements.txt
- name: Remove unavailable dependencies on Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: sed -i -e '/^dbus-python.*$/d' -e '/^libxmlsec1.*$/d' requirements.txt
- name: Get current year and calendar week
id: year-and-week
run: echo "year-and-week=$(date +%Y-%V)" >> "${GITHUB_OUTPUT}"
- uses: mamba-org/setup-micromamba@v1
with:
environment-file: requirements.txt
environment-name: ci
cache-environment: true
# Set the cache key in a way that the cache is invalidated every week on monday
cache-environment-key: environment-${{ steps.year-and-week.outputs.year-and-week }}
- name: Run tests
timeout-minutes: 20
run: micromamba run -n ci ${{ (startsWith(matrix.os, 'ubuntu') && 'xvfb-run') || 'env QT_QPA_PLATFORM=offscreen' }}
pytest -v -n 6 --dist loadfile --max-worker-restart 4 --durations=20 --cov=mslib
${{ (matrix.order == 'normal' && ' ') || (matrix.order == 'reverse' && '--reverse') }} tests
- name: Collect coverage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global --add safe.directory /__w/MSS/MSS
micromamba create -n coveralls coveralls
micromamba run -n coveralls coveralls --service=github