Skip to content

Fixing Cache and Docker CI #925

Fixing Cache and Docker CI

Fixing Cache and Docker CI #925

Workflow file for this run

name: CI
on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review, review_requested]
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -el {0}
steps:
- name: Checkout T3
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
id: cache-rmg
uses: actions/cache@v2
with:
path: RMG-Py
key: ${{ runner.os }}-rmg-main
restore-keys: |
${{ runner.os }}-rmg-
- name: Debug RMG Cache
run: |
echo "cache hit: ${{ steps.cache-rmg.outputs.cache-hit }}"
- name: Checkout RMG
if: steps.cache-rmg.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 ARC
id: cache-arc
uses: actions/cache@v2
with:
path: ARC
key: ${{ runner.os }}-arc-main
restore-keys: |
${{ runner.os }}-arc-
- name: Checkout ARC
if: steps.cache-arc.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: ReactionMechanismGenerator/ARC
path: ARC
ref: main
fetch-depth: 1
- name: Cache Conda Packages
uses: actions/cache@v2
env:
CACHE_NUMBER: 0
with:
path: ~/conda_pkgs_dir
key:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment.yml') }}-t3
- name: Setup RMG-Py Env
uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Mambaforge
miniforge-version: latest
activate-environment: rmg_env
use-mamba: true
- name: Cache RMG-Py env
uses: actions/cache@v2
with:
path: ${{ env.CONDA }}/envs/rmg_env
key:
conda-${{ runner.os }}--${{ runner.arch }}-rmgpyenv-${{ env.CACHE_NUMBER}}
env:
# Increase this value to reset cache if etc/example-environment.yml has not changed
CACHE_NUMBER: 1
id: cache-rmgpy-env
- name: Update environment
run: mamba env update -n rmg_env -f RMG-Py/environment.yml
if: steps.cache-rmgpy-env.outputs.cache-hit != 'true'
- name: Cythonize RMG-Py
run: |
cd RMG-Py
conda activate rmg_env
make clean
make
echo "PYTHONPATH=$(pwd):$PYTHONPATH" >> $GITHUB_ENV
echo "PATH=$(pwd):$PATH" >> $GITHUB_ENV
echo "export rmgpy_path=$(pwd)" >> $GITHUB_ENV
echo "PYTHONPATH=$(pwd):$PYTHONPATH" >> ~/.bashrc
echo "PATH=$(pwd):$PATH" >> ~/.bashrc
echo "export rmgpy_path=$(pwd)" >> ~/.bashrc
- name: Cache RMS
id: cache-rms
uses: actions/cache@v2
env:
CACHE_NUMBER: 0
with:
path: |
/usr/share/miniconda3/envs/rmg_env/share/julia/artifacts/
/usr/share/miniconda3/envs/rmg_env/share/julia/packages/
/usr/share/miniconda3/envs/rmg_env/share/julia/registries/
/usr/share/miniconda3/envs/rmg_env/share/julia/compiled/
key:
${{ runner.os }}-julia-${{ env.CACHE_NUMBER }}-rms
- name: Install RMS Julia
run: julia -e 'using Pkg; Pkg.add(PackageSpec(name="PyCall",rev="master"));Pkg.build("PyCall");Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="main")); using ReactionMechanismSimulator;'
- name: Install PyCall RMG_ENV
run: python -c "import julia; julia.install(); import diffeqpy; diffeqpy.install()"
- name: Install ARC ENV
run: |
cd ARC
mamba env create -f environment.yml
conda activate arc_env
echo "export arc_path=$(pwd)" >> $GITHUB_ENV
echo "PYTHONPATH=$(pwd):$PYTHONPATH" >> $GITHUB_ENV
echo "PATH=$(pwd):$PATH" >> $GITHUB_ENV
echo "PYTHONPATH=$(pwd):$PYTHONPATH" >> ~/.bashrc
echo "PATH=$(pwd):$PATH" >> ~/.bashrc
echo "export arc_path=$(pwd)" >> ~/.bashrc
cd ..
- name: Install xtb
run: |
mamba create -n xtb_env python=3.7 -c conda-forge -y
conda activate xtb_env
mamba install -c conda-forge xtb=6.3.3 -y
mamba install -c anaconda pyyaml -y
- name: Install T3
run: |
mamba env create -f environment.yml
- name: Install CodeCov
run: |
conda activate t3_env
mamba install -c conda-forge codecov
mamba install -c conda-forge pytest-cov
- name: Run T3 Tests
shell: bash -el {0}
run: |
source ~/.bashrc
conda activate t3_env
make test
codecov --token=${{ secrets.CODECOV_TOKEN }}
- name: Code Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
verbose: true
fail_ci_if_error: true