Improve Testing Time #542
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Py 3.7 3.8, 3.9 | Windows Mac Linux | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
pull_request: | |
branches: | |
- master | |
- develop | |
jobs: | |
prepare-cache: | |
runs-on: ubuntu-latest | |
env: | |
PYTHON_VER: 3.9 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Setup Conda | |
uses: s-weigand/setup-conda@v1 | |
with: | |
activate-conda: false | |
conda-channels: conda-forge | |
- name: Python setup | |
shell: bash -l {0} | |
run: | | |
conda create --name TEST python=${{ env.PYTHON_VER }} numpy cython pip hdf5 libnetcdf cftime netcdf4 --strict-channel-priority | |
source activate TEST | |
export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config | |
pip install -e . --no-deps --force-reinstall | |
- name: Install dependencies | |
shell: bash -l {0} | |
run: | | |
source activate TEST | |
python -m pip install --upgrade pip wheel | |
pip install coverage pytest coveralls . | |
- name: Prepare data | |
run: | | |
# pytest tests/test_specific_file.py::TestClass::test_function | |
source activate TEST | |
pytest mhkit/tests/river/test_io.py | |
pytest mhkit/tests/tidal/test_io.py | |
pytest mhkit/tests/wave/io/test_cdip.py | |
pytest mhkit/tests/wave/io/hindcast/test_hindcast.py | |
pytest mhkit/tests/wave/io/hindcast/test_wind_toolkit.py | |
# - name: Cache data | |
# uses: actions/cache@v2 | |
# id: cache-data | |
# with: | |
# path: ~/.cache/mhkit | |
# key: static-data-key | |
- name: Upload data as artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: data | |
path: ~/.cache/mhkit | |
conda-build: | |
name: conda-${{ matrix.os }}/${{ matrix.python-version }} | |
needs: [prepare-cache] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["windows-latest", "ubuntu-latest", "macos-latest"] | |
python-version: [3.8, 3.9] | |
env: | |
PYTHON_VER: ${{ matrix.python-version }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Conda | |
uses: s-weigand/setup-conda@v1 | |
with: | |
activate-conda: false | |
conda-channels: conda-forge | |
- name: Python ${{ matrix.python-version }} | |
shell: bash -l {0} | |
run: | | |
conda create --name TEST python=${PYTHON_VER} numpy cython pip hdf5 libnetcdf cftime netcdf4 --strict-channel-priority | |
source activate TEST | |
export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config | |
pip install -e . --no-deps --force-reinstall | |
- name: Install dependencies | |
shell: bash -l {0} | |
run: | | |
source activate TEST | |
python -m pip install --upgrade pip wheel | |
pip install coverage pytest coveralls . | |
# - name: Restore cached data | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.cache/mhkit | |
# key: static-data-key | |
# restore-keys: | | |
# data-key- | |
- name: Download data from artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: data | |
path: ~/.cache/mhkit | |
- name: Run pytest | |
shell: bash -l {0} | |
run: | | |
source activate TEST | |
coverage run --rcfile=.github/workflows/.coveragerc --source=./mhkit/ -m pytest -c .github/workflows/pytest.ini | |
- name: Upload coverage data to coveralls.io | |
shell: bash -l {0} | |
run: | | |
source activate TEST | |
coveralls --service=github | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_FLAG_NAME: ${{ matrix.python-version }} | |
COVERALLS_PARALLEL: true | |
pip-build: | |
name: pip-${{ matrix.os }}/${{ matrix.python-version }} | |
needs: [prepare-cache] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["windows-latest", "ubuntu-latest", "macos-latest"] | |
python-version: [3.8, 3.9] | |
steps: | |
- uses: conda-incubator/setup-miniconda@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up Git repository | |
uses: actions/checkout@v2 | |
# - name: Restore cached data | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.cache/mhkit | |
# key: static-data-key | |
# restore-keys: | | |
# data-key- | |
- name: Download data from artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: data | |
path: ~/.cache/mhkit | |
- name: Update and install packages | |
run: | | |
python -m pip install --upgrade pip wheel | |
pip install coverage pytest coveralls . | |
- name: Run pytest | |
run: | | |
coverage run --rcfile=.github/workflows/.coveragerc --source=./mhkit/ -m pytest -c .github/workflows/pytest.ini | |
- name: Upload coverage data to coveralls.io | |
run: coveralls --service=github | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_FLAG_NAME: ${{ matrix.python-version }} | |
COVERALLS_PARALLEL: true | |
hindcast-calls: | |
name: hindcast-${{ matrix.os }}/${{ matrix.python-version }} | |
needs: [prepare-cache] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
max-parallel: 1 | |
fail-fast: false | |
matrix: | |
# os: ["windows-latest", "macos-latest"] | |
os: ["ubuntu-latest"] | |
python-version: [3.9] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Conda | |
uses: s-weigand/setup-conda@v1 | |
with: | |
activate-conda: false | |
conda-channels: conda-forge | |
- name: Python ${{ matrix.python-version }} | |
shell: bash -l {0} | |
run: | | |
conda create --name TEST python=${{ matrix.python-version }} numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 coverage --strict-channel-priority | |
source activate TEST | |
export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config | |
pip install -e . --no-deps --force-reinstall | |
# - name: Restore cached data | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.cache/mhkit | |
# key: static-data-key | |
# restore-keys: | | |
# data-key- | |
- name: Download data from artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: data | |
path: ~/.cache/mhkit | |
- name: Install MHKiT and run pytest | |
shell: bash -l {0} | |
run: | | |
source activate TEST | |
python -m pip install --upgrade pip wheel | |
pip install coveralls . | |
coverage run --rcfile=.github/workflows/.coveragehindcastrc -m pytest -c .github/workflows/pytest-hindcast.ini | |
- name: Upload coverage data to coveralls.io | |
shell: bash -l {0} | |
run: | | |
source activate TEST | |
coveralls --service=github | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_FLAG_NAME: ${{ matrix.python-version }} | |
COVERALLS_PARALLEL: true | |
coveralls: | |
name: Indicate completion to coveralls.io | |
needs: [conda-build, pip-build, hindcast-calls] | |
runs-on: ubuntu-latest | |
container: python:3-slim | |
steps: | |
- name: Finished | |
run: | | |
pip3 install --upgrade coveralls | |
coveralls --finish | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |