Checkout edits #519
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: create_test_conda_env | |
on: [pull_request] | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/noaa-gfdl/fre-cli:miniconda24.7.1_gcc14.2.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Create fre-cli environment | |
run: | | |
# create environment containing all dependencies | |
# the env cannot be explicitly activated in github CI/CD | |
conda env create -f environment.yml --name fre-cli | |
# sets CONDA to wherever it may be on the image | |
source /root/.bashrc | |
# add conda env's executables and mkmf to github's PATH equiv. | |
echo $CONDA/envs/fre-cli/bin >> $GITHUB_PATH | |
echo $PWD/mkmf/bin >> $GITHUB_PATH | |
# use *conda environment's pip* to install fre-cli | |
# called w/ full path to conda's python for explicitness | |
# called as a module (-m pip) for explicitness | |
$CONDA/envs/fre-cli/bin/python -m pip install --prefix $CONDA/envs/fre-cli . | |
- name: Run pytest in fre-cli environment | |
run: | | |
# add spack installed binaries to front of path so that | |
# conda's netcdf/hdf5 installs don't break compilation tests | |
export path_save=$PATH | |
export PATH="/opt/views/view/bin:$PATH" | |
# run pytest | |
pytest --junit-xml=pytest_results.xml --config-file=fre/pytest.ini --cov-config=fre/coveragerc --cov-report=xml --cov=fre fre/ | |
# restore original path and install genbadge to generate coverage badge based on xml | |
export PATH="$path_save" | |
pip install genbadge | |
genbadge coverage -v -i coverage.xml -o docs/cov_badge.svg | |
genbadge tests -v -i pytest_results.xml -o docs/pytest_badge.svg | |
- name: Run pylint in fre-cli environment | |
run: | | |
# run pylint, ignored modules avoid warnings arising from code internal to those modules | |
pylint --max-args 6 -ry --ignored-modules netCDF4,cmor fre/ || echo "pylint returned non-zero exit code. preventing workflow from dying with this echo." | |
- name: Install Sphinx and Build Documentation | |
run: | | |
pip install sphinx renku-sphinx-theme sphinx-rtd-theme | |
pip install --upgrade sphinx-rtd-theme | |
sphinx-apidoc --output-dir docs fre/ --separate | |
sphinx-build docs build | |
- name: Deploy to GitHub Pages | |
uses: peaceiris/actions-gh-pages@v3 | |
if: ${{ github.ref == 'refs/heads/main' }} | |
with: | |
publish_branch: gh-pages | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: build/ | |
force_orphan: true |