Skip to content

CI

CI #368

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.8, 3.9 ]
steps:
- uses: actions/checkout@v1
- name: Additional info about the build
shell: bash
run: |
uname -a
df -h
ulimit -a
# More info on options: https://github.com/conda-incubator/setup-miniconda
- uses: conda-incubator/setup-miniconda@v2
with:
python-version: ${{ matrix.python-version }}
environment-file: devtools/conda-envs/test_env.yaml
channels: conda-forge,defaults
activate-environment: test
auto-update-conda: false
auto-activate-base: false
show-channel-urls: true
- name: Install package
# conda setup requires this special shell
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
conda 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 seamm_dashboard/tests/
- name: Run tests for API only for MacOS
if: matrix.os == 'macOS-latest'
# conda setup requires this special shell
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@v1
with:
file: ./coverage.xml
flags: unittests
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}