Skip to content

CI

CI #394

Workflow file for this run

name: CI
on:
# Allow manual triggering of workflow
workflow_dispatch:
push:
branches:
- "main"
pull_request:
branches:
- "main"
schedule:
# Scheduled tests once a week
# Scheduled workflows run on the latest commit on the default or base branch.
# (from https://help.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule)
- cron: "0 0 * * 0"
jobs:
test:
name: Test on ${{ matrix.os }}, Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest, ubuntu-latest]
python-version: [ "3.10", 3.11, 3.12 ]
steps:
- uses: actions/checkout@v4
- name: Additional info about the build
shell: bash
run: |
uname -a
df -h
ulimit -a
- uses: mamba-org/setup-micromamba@v1
with:
environment-file: devtools/conda-envs/test_env.yaml
environment-name: test
condarc: |
channels:
- conda-forge
create-args: >-
python=${{ matrix.python-version }}
- name: Install package
shell: bash -l {0}
run: |
cd seamm_dashboard/static
npm install
du -hs node_modules
python only_needed_files.py
du -hs node_modules
cd ../../
python -m pip install . --no-deps
micromamba list
- name: Install chromedriver binary and run tests
if: matrix.os == 'ubuntu-latest'
shell: bash -l {0}
run: |
export chrome_version=$(google-chrome --version | cut -d ' ' -f 3 | cut -d . -f 1)
export chrome_version_max=$(($chrome_version+1))
pip install "chromedriver-binary<=$chrome_version_max"
pytest -v --cov=seamm_dashboard --cov-report=xml --color=yes seamm_dashboard/tests/
- name: Run tests for API only for MacOS
if: matrix.os == 'macOS-latest'
shell: bash -l {0}
run: |
# Still have to install chromedriver, but the version doesn't matter
pip install chromedriver-binary
pytest -v -k "test_api"
- name: CodeCov
if: matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
flags: unittests
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}