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: Python Package using Conda | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
# Enable bash login shell to activate conda environment | |
shell: bash -l {0} | |
strategy: | |
max-parallel: 5 | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout nglview repository | |
uses: actions/checkout@v4 | |
- name: Cache conda | |
uses: actions/cache@v4 | |
env: | |
CACHE_NUMBER: 1 # Increase this value to reset cache if environment.yml has changed | |
with: | |
path: ~/conda_pkgs_dir | |
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('.github/workflows/environment.yml') }} | |
- name: Cache netcdf-c | |
uses: actions/cache@v4 | |
with: | |
path: ~/netcdf-c | |
key: ${{ runner.os }}-netcdf-c-${{ hashFiles('.github/workflows/python-package-conda.yml') }} | |
restore-keys: | | |
${{ runner.os }}-netcdf-c- | |
- name: Cache Miniconda | |
uses: actions/cache@v4 | |
with: | |
path: ~/miniconda | |
key: ${{ runner.os }}-miniconda-${{ hashFiles('.github/workflows/environment.yml') }} | |
restore-keys: | | |
${{ runner.os }}-miniconda- | |
- name: Get latest cpptraj commit hash | |
id: get-hash | |
run: | | |
latest_hash=$(git ls-remote https://github.com/Amber-MD/cpptraj.git refs/heads/master | awk '{print $1}') | |
echo "::set-output name=hash::$latest_hash" | |
- name: Cache cpptraj | |
uses: actions/cache@v4 | |
with: | |
path: ~/cpptraj | |
key: ${{ runner.os }}-cpptraj-${{ steps.get-hash.outputs.hash }} | |
restore-keys: | | |
${{ runner.os }}-cpptraj- | |
- name: Set up Miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
auto-activate-base: false | |
activate-environment: pytraj-gha | |
environment-file: .github/workflows/environment.yml | |
mamba-version: "*" | |
channels: conda-forge | |
channel-priority: true | |
python-version: ${{ matrix.python-version }} | |
- name: Check conda environment | |
run: | | |
conda --version | |
which conda | |
which python | |
which python3 | |
- name: Install prerequisite packages | |
run: | | |
sudo apt-get install -y gfortran libbz2-dev libblas-dev liblapack-dev libfftw3-dev clang cmake-data cmake | |
- name: Install cpptraj dependencies | |
run: | | |
if [ ! -d "$HOME/netcdf-c" ]; then | |
curl -OL https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz | |
tar -zxf v4.9.2.tar.gz | |
mv netcdf-c-4.9.2 netcdf-c | |
cd netcdf-c | |
./configure --disable-byterange --disable-libxml2 --disable-netcdf-4 --disable-dap --disable-doxygen --prefix=$HOME | |
make -j2 | |
make install | |
cd .. | |
fi | |
export PATH=$PATH:$HOME/bin | |
- name: Install cpptraj | |
run: | | |
if [ ! -d "$HOME/cpptraj" ]; then | |
git clone https://github.com/Amber-MD/cpptraj | |
cd cpptraj | |
export CPPTRAJHOME=`pwd` | |
yes | ./configure -shared -openmp -nohdf5 gnu | |
make libcpptraj | |
cd ../ | |
fi | |
- name: Install pytraj | |
run: | | |
which python3 | |
python3 setup.py install | |
- name: Test with pytest | |
run: | | |
export CPPTRAJHOME=`pwd`/cpptraj && cd tests && pytest -vs --ignore=test_parallel_pmap --ignore=test_run_mpi.py --ignore=test_energy/test_pmap_sander.py --ignore=test_parallel_mpi --ignore=test_actionlist.py |