Skip to content

CI

CI #6304

Workflow file for this run

name: CI
on:
push:
branches:
- '*'
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review, review_requested]
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -el {0}
steps:
- name: Checkout ARC
uses: actions/checkout@v3
- name: Clean Ubuntu Image
uses: kfir4444/free-disk-space@main
with:
# This may remove tools actually needed - currently does not
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true
- name: Cache RMG-Py
id: cache-rmg-py
uses: actions/cache@v2
with:
path: RMG-Py
key: ${{ runner.os }}-rmg-main
restore-keys: |
${{ runner.os }}-rmg-
- name: Checkout RMG-py
if: steps.cache-rmg-py.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: ReactionMechanismGenerator/RMG-Py
path: RMG-Py
ref: main
fetch-depth: 1
- name: Cache RMG-database
id: cache-rmg-db
uses: actions/cache@v2
with:
path: RMG-database
key: ${{ runner.os }}-rmgdb-main
restore-keys: |
${{ runner.os }}-rmgdb-
- name: Checkout RMG-database
if: steps.cache-rmg-db.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: ReactionMechanismGenerator/RMG-database
path: RMG-database
ref: main
fetch-depth: 1
- name: Cache AutoTST
id: cache-autotst
uses: actions/cache@v2
with:
path: AutoTST
key: ${{ runner.os }}-autotst-main
restore-keys: |
${{ runner.os }}-autotst-
- name: Checkout AutoTST
if: steps.cache-autotst.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: ReactionMechanismGenerator/AutoTST
path: AutoTST
ref: main
fetch-depth: 1
- name: Cache TS-GCN
id: cache-tsgcn
uses: actions/cache@v2
with:
path: TS-GCN
key: ${{ runner.os }}-tsgcn-main
restore-keys: |
${{ runner.os }}-tsgcn-
- name: Checkout TS-GCN
if: steps.cache-tsgcn.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: ReactionMechanismGenerator/TS-GCN
path: TS-GCN
ref: main
fetch-depth: 1
- name: Cache KinBot
id: cache-kinbot
uses: actions/cache@v2
with:
path: KinBot
key: ${{ runner.os }}-kinbot-2.0.6
restore-keys: |
${{ runner.os }}-kinbot-
- name: Checkout Kinbot 2.0.6
if: steps.cache-kinbot.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: zadorlab/KinBot
path: KinBot
ref: v2.0.6
fetch-depth: 1
- name: Cache Packages
uses: actions/cache@v2
env:
CACHE_NUMBER: 0
with:
path: ~/conda_pkgs_dir
key:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment.yml') }}
- name: Set up miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
environment-file: environment.yml
activate-environment: arc_env
miniconda-version: latest
conda-solver: libmamba
- name: Cache ARC env
uses: actions/cache@v2
with:
path: ${{ env.CONDA }}/envs/arc_env
key: conda-${{ runner.os }}--${{ runner.arch }}-arcenv-${{ env.CACHE_NUMBER}}
env:
# Increase this value to reset cache if etc/example-environment.yml has not changed
CACHE_NUMBER: 0
id: cache-arc-env
- name: Update environment
run: conda env update -n arc_env -f environment.yml
if: steps.cache-arc-env.outputs.cache-hit != 'true'
- name: Install codecov
run: conda install --force-reinstall ld_impl_linux-64 -y && conda install -y -c conda-forge codecov
- name: Cythonize RMG-Py
run: |
cd RMG-Py
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PATH=$PATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> ~/.bashrc
echo 'export PATH=$PATH:'"$(pwd)" >> ~/.bashrc
make
cd ..
- name: Set ARC Path
run: |
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PATH=$PATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> ~/.bashrc
echo 'export PATH=$PATH:'"$(pwd)" >> ~/.bashrc
- name: Install AutoTST
run: |
cd AutoTST
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PATH=$PATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> ~/.bashrc
echo 'export PATH=$PATH:'"$(pwd)" >> ~/.bashrc
conda env create -f environment.yml
# install pyaml
conda install -n tst_env -c conda-forge -y pyyaml
cd ..
- name: Install TS-GCN
run: |
cd TS-GCN
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PATH=$PATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> ~/.bashrc
echo 'export PATH=$PATH:'"$(pwd)" >> ~/.bashrc
bash devtools/create_env_cpu.sh
conda env update -n ts_gcn -f environment.yml
cd ..
- name: Install KinBot
run: |
cd KinBot
conda activate arc_env
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PATH=$PATH:'"$(pwd)" >> $GITHUB_ENV
echo 'export PYTHONPATH=$PYTHONPATH:'"$(pwd)" >> ~/.bashrc
echo 'export PATH=$PATH:'"$(pwd)" >> ~/.bashrc
python setup.py build
python setup.py install
cd ..
- name: Install OpenBabel
run: |
conda env create -f devtools/ob_environment.yml
- name: Install Sella
run: |
conda env create -f devtools/sella_environment.yml
- name: Install Torch Ani
run: |
conda env create -f devtools/tani_environment.yml
- name: Install XTB
run: |
conda env create -f devtools/xtb_environment.yml
- name: Test with pytest
shell: bash -el {0}
run: |
source ~/.bashrc
conda activate arc_env
make test
codecov --token=f259713a-7f1d-4e9c-b140-bb3bb371d3ef
- name: Functional Test
run: |
source ~/.bashrc
conda activate arc_env
make test-functional
# Wait ten seconds before running the next step
- name: Wait
run: sleep 10
- name: Code Coverage
uses: codecov/codecov-action@v3
with:
token: f259713a-7f1d-4e9c-b140-bb3bb371d3ef
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
verbose: true
fail_ci_if_error: false