Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
fa3047e
update readme, see ext
JacksonBurns Oct 30, 2023
d411c27
remove old testing files
JacksonBurns Oct 30, 2023
b706fcc
port ci file from rmg-py
JacksonBurns Oct 30, 2023
6a6b56d
add the PR annotate-r workflow
JacksonBurns Oct 30, 2023
cfb4910
Merge pull request #635 from ReactionMechanismGenerator/ci-update
hwpang Dec 12, 2023
32b4a98
simplify ci to mimic rmg-py more
JacksonBurns Mar 7, 2024
f3f004f
working-directory only applies to 'run' steps, not 'uses' steps
JacksonBurns Mar 7, 2024
b12078f
Merge pull request #638 to fix continuous regression testing
rwest Mar 7, 2024
33a2051
Update and add BEP rules for surface families
bjkreitz Sep 19, 2022
bc39f38
changing C group to match parent in surf_abstraction_beta
ChrisBNEU Mar 9, 2023
ae1172b
added multiplicity for surf_adsorption_dissoc children
ChrisBNEU Mar 9, 2023
5081c2d
surf_dissoc_vdw parents/children changed to match
ChrisBNEU Mar 9, 2023
c39362e
fixing indent on l5's for family tree
ChrisBNEU Aug 1, 2023
f8d138e
make Abs_Beta_double_vdW more permissive
bjkreitz Mar 6, 2024
e77dcc8
remove Dual_Adsorption_vdW
bjkreitz Mar 6, 2024
825cd3f
updating reaction families pdf
ChrisBNEU Mar 7, 2024
1fabbda
update rxn families pdf
ChrisBNEU Mar 7, 2024
ff24123
fix BetaDoublevDW description
bjkreitz Mar 7, 2024
75aa649
Merge pull request #596 to update BEP relations for catalytic kinetics
rwest Mar 8, 2024
632dfad
Fix training reactions format for Surface_Abstraction.
bjkreitz Sep 8, 2023
3dc19c7
Merge pull request #633 to fix Surface_Abstraction training reactions…
rwest Mar 8, 2024
36a5e28
Adding new surface families
bjkreitz Sep 19, 2022
12ddf9c
made child as strict as parent surf_dissoc_double
ChrisBNEU Mar 9, 2023
1970637
fixed parent/child relationships in surf_abs_beta_vdw
ChrisBNEU Mar 9, 2023
b7fd746
Remove Surface_Adsorption_Abstraction_vdW because it's redundant
bjkreitz Mar 6, 2024
f128a97
Remove Surface_Adsorption_Abstraction_vdW image.
rwest Mar 8, 2024
07f5457
Update the PDF of reaction families.
rwest Mar 8, 2024
a33a158
update families pdf
bjkreitz Mar 19, 2024
f35dec5
remove Surface_Association_Beta
bjkreitz Mar 19, 2024
8ba4f14
Merge pull request #597 from ReactionMechanismGenerator/new_surface_f…
rwest Mar 19, 2024
9375a0d
update adsorption corrections
bjkreitz Aug 8, 2023
fbe2f8e
fix tree errors
bjkreitz Mar 6, 2024
51c5313
doubleBond to Bidentate rename to monodentate
bjkreitz Mar 21, 2024
27184d7
fix reactions.py index
bjkreitz Mar 25, 2024
fe8f5bf
add metadata and adjust names
bjkreitz Mar 25, 2024
602b8c1
Update adsorption corrections (pull request #629)
rwest Mar 26, 2024
667c277
restricting group so H doesn't abstract atoms
ChrisBNEU Jun 27, 2023
a21b1dc
fix H abstraction
bjkreitz Mar 7, 2024
263a214
restrict families
bjkreitz Mar 7, 2024
b8c001d
add AbstractionSingle back in
bjkreitz Mar 7, 2024
34098f6
remove H-H from tree
bjkreitz Mar 8, 2024
f112363
updating top level rules for abstraction families
ChrisBNEU Mar 7, 2024
0623bd4
Update surface reaction families (Merge PR #628)
rwest Mar 28, 2024
abba087
remove disused windows build script
JacksonBurns Mar 26, 2024
191c19b
use noarch in conda recipe since rmg-database is platform independent
JacksonBurns Mar 26, 2024
21b690a
conda build action - only run on one platform pull fixed action from rmg
JacksonBurns Mar 26, 2024
c7a2335
Merge pull request #645 from ReactionMechanismGenerator/fix/conda_recipe
JacksonBurns Apr 1, 2024
86596b5
update solvent docstring to include Yunsie 2022 Abraham parameter pub…
jonwzheng Mar 18, 2024
479f585
update group additivity comments with updated manuscript
jonwzheng Mar 18, 2024
07d20fb
fix erroneous viscosity values in solvent database
jonwzheng Mar 20, 2024
1ca7a52
Merge pull request #642 from ReactionMechanismGenerator/fix_solvation
JacksonBurns Apr 3, 2024
af7f188
Merge branch 'main' into mono_to_bidentate
bjkreitz Apr 3, 2024
2fbcb0d
remove old name from recommended.py
ChrisBNEU Apr 3, 2024
713cd4d
Merge PR #644 to rename and improve Surface_Monodentate_to_Bidentate …
rwest Apr 4, 2024
2e16eca
update bidentate dissociation
bjkreitz Mar 26, 2024
ec3ce5d
update remaining families
bjkreitz Mar 27, 2024
2db340e
dissociation to bidentate units
bjkreitz Apr 11, 2024
8825a0c
Merge PR #646 to update bidentate surface reaction families.
rwest Apr 12, 2024
22c8b24
Add AEC data
hwpang Sep 7, 2023
87dd117
Add BAC data
hwpang Sep 8, 2023
471cc71
Add AEC and BAC fitted results
hwpang Apr 18, 2024
9703701
update Pt111 library
bjkreitz Mar 7, 2024
04a5444
Added QE data for N containing species
kirkbadger18 Mar 7, 2024
d493844
updated old N containing thermovalues, and added a few more N contain…
kirkbadger18 Mar 28, 2024
7acfc1d
replacing frequencies with values from QE phonon calculator
kirkbadger18 Apr 17, 2024
f1c1e53
quote the conda token environment variable to avoid special chars
JacksonBurns Apr 22, 2024
b09290c
Merge PR #640 to update Pt111 surface adsorbate thermo library
rwest May 16, 2024
d47e6b7
github actions CI maintainence
JacksonBurns Jun 7, 2024
a85e44c
set a default value for the conda_token if the secret is missing (forks)
JacksonBurns Jun 7, 2024
86351e7
Merge pull request #652 from JacksonBurns/fix/ci_downloadv4
JacksonBurns Jun 7, 2024
2cd09af
Merge branch 'main' into aec_bac_part_1
jonwzheng Jun 11, 2024
e5fed4c
fix the github token
JacksonBurns Jun 12, 2024
b331dd7
fix download path for regression reference artifact
JacksonBurns Jun 12, 2024
6fb8c31
went up one too many levels
JacksonBurns Jun 12, 2024
ce4347f
Merge pull request #648 from hwpang/aec_bac_part_1
jonwzheng Jun 12, 2024
ee045c8
switch signs on Pc
JacksonBurns Feb 8, 2024
4f939c6
invet Pc signs in non-ring
JacksonBurns Feb 9, 2024
7a86f0b
invert sign for csh3r from review comment
JacksonBurns Mar 18, 2024
0cd19ba
Merge pull request #636 from ReactionMechanismGenerator/joback_sign_fix
jonwzheng Jun 13, 2024
2173017
Fixed a potential infinite loop during missing group generation.
ssun30 Jul 9, 2024
c1b7a3b
Merge pull request #658 from ssun30 for Benson group fitting notebook
rwest Jul 9, 2024
3de6ba1
Added MRCI-F12+Q/cc-pVTZ-F12 AECs to Arkane
alongd Jul 15, 2024
6366b1e
Merge pull request #659 from ReactionMechanismGenerator/mrci_aec
alongd Jul 16, 2024
9e9fa13
Added freq scaling factor for wb97m-v/def2-tzvp
alongd Jul 24, 2023
8394592
Merge pull request #627 from ReactionMechanismGenerator/wb97mv
alongd Jul 16, 2024
a939232
removed rxns comments that started with the word fit
NellyMitnik Jun 26, 2023
915d279
Merge pull request #626 from ReactionMechanismGenerator/C6H5_C4H4_Meb…
alongd Jul 16, 2024
8e06761
Added NH2NO2(T) to primaryNS thermo library
alongd Aug 10, 2023
a676f53
Corrected two elementary_high_p attributes in the primaryNitrogenLibrary
alongd May 17, 2023
eb49c7f
General improvements to the primaryNitrogenLibrary
alongd Jun 13, 2023
457fb1a
Added Klippenstein2022 HO2 + HO2 reactions to the primaryH2O2 library
alongd May 24, 2023
8f6bfda
Minor: Format changes and citation fixes in primaryH2O2
alongd Jul 20, 2024
c7aa26d
Added forbidden molecules in the NH3 system
alongd Jul 22, 2024
968744e
Added the NH3 thermo library
alongd Jul 16, 2024
843e6ca
Added NH3 reactions to the primaryNitrogenLibrary
alongd Jul 24, 2024
d3bbeaf
Updated N2H3 + NH2 <=> N2H2 + NH3 in HydrazinePDep
alongd Dec 28, 2023
aa03925
Merge pull request #620 from ReactionMechanismGenerator/nh3
jonwzheng Jul 30, 2024
4163d3e
Added PDep rates on the N2H3 PES to the PNL
alongd Aug 2, 2024
d6311e2
Minor: Style modification to PNL
alongd Aug 1, 2024
24451a0
Merge pull request #661 from ReactionMechanismGenerator/n2h3
alongd Aug 4, 2024
250e300
ran BM fitting notebook
jonwzheng Jun 14, 2021
fe5884c
set autoGenerated=True and added product, reactant numbers
jonwzheng Jun 14, 2021
5adb637
Merge pull request #494 from ReactionMechanismGenerator/singlet-carbe…
mjohnson541 Aug 14, 2024
ff6fd09
Removes duplicate bad fits when fitting Benson Groups
ssun30 Jul 18, 2024
bae334b
Merge pull request #660 from ssun30/group_fit_script_patch
rwest Aug 15, 2024
ffc7e60
changed input name in aec.excecute
kfir4444 Sep 8, 2024
c609c33
Merge pull request #663 from ReactionMechanismGenerator/script_err
mjohnson541 Sep 9, 2024
7e93b62
remove Addition Single vdW
bjkreitz Jun 27, 2024
ccdacda
add training rxn
bjkreitz Jun 28, 2024
affd292
Remove Surface_Addition_Single_vdW family which is a duplicate (PR #656)
rwest Sep 19, 2024
cc0ecdb
Changes to CI to match RMG-Py
ssun30 Oct 2, 2024
63ea77b
Updated PNL with N2H3 rates
alongd Oct 5, 2024
64dd3b6
Merge pull request #669 from ReactionMechanismGenerator/pnl_n2h3
alongd Oct 26, 2024
1c22f7d
Fixed Conda build by:
ssun30 Nov 21, 2024
aceafa2
Merge pull request #671 from ReactionMechanismGenerator/fix_conda_build
rwest Nov 23, 2024
20f659b
added Li to metal database
davidfarinajr Sep 2, 2021
33a61dc
added electrocatThermo thermo library
davidfarinajr May 12, 2021
598b238
added electrochem kinetics families
davidfarinajr May 12, 2021
12b8743
modified O2 ads in Deutschmann lib
davidfarinajr Sep 1, 2021
e0cee2c
add adsorptionLi thermo groups
davidfarinajr Sep 1, 2021
ebd1505
add surfaceThermoLi thermo library
davidfarinajr Sep 2, 2021
fc0cf53
add 50:50 EC:DMC solvent parameters
mjohnson541 Sep 29, 2021
f4eb440
add Surface Carbonate 2F Decomposition family
mjohnson541 Sep 29, 2021
d520461
add Surface Carbonate CO 2F Decomposition family
mjohnson541 Sep 29, 2021
176beff
add Surface Carbonate CO Decomposition family
mjohnson541 Sep 29, 2021
bdeeac9
add Surface Carbonate Deposition family
mjohnson541 Sep 29, 2021
43699a7
add Surface Carbonate F CO Decomposition family
mjohnson541 Sep 29, 2021
7cb19a6
add new families to recommended
mjohnson541 Sep 29, 2021
898a1c0
*commented out carbonate families from recommended
mjohnson541 Mar 10, 2024
8c0f055
add Li thermo groups
mjohnson541 Dec 8, 2021
2406251
add LithiumPrimaryThermo Library
mjohnson541 Nov 30, 2021
58b69f0
add computationalLithiumElectrode library
davidfarinajr Nov 18, 2021
5971e00
add LithiumAdditionThermo library
mjohnson541 Dec 13, 2021
ade01d4
add LithiumPrimaryKinetics library
mjohnson541 Dec 10, 2021
713b31a
add LithiumPrimaryChargedKinetics library
mjohnson541 Dec 14, 2021
7430c6f
add Li groups for solute parameter predictions
mjohnson541 Dec 9, 2021
07ad8c8
add LithiumPrimaryThermo library solute parameters
mjohnson541 Dec 9, 2021
d1e3059
1,2_Elimination_LiR family
mjohnson541 Dec 14, 2021
6330468
1,2_Intra_Elimination_LiR family
mjohnson541 Dec 14, 2021
1c363bd
Cation_Addition_MultipleBond family
mjohnson541 Dec 14, 2021
3d0af74
Cation_Addition_MultipleBond_Disprop family
mjohnson541 Dec 14, 2021
7e6d49f
Cation_Li_Abstraction family
mjohnson541 Dec 14, 2021
9091ac0
Cation_NO_Ring_Opening family
mjohnson541 Dec 14, 2021
ca329be
Cation_NO_Substitution family
mjohnson541 Dec 14, 2021
dd4852f
Cation_R_Recombination initial family
mjohnson541 Dec 14, 2021
dda70d2
Li_Abstraction family
mjohnson541 Dec 14, 2021
2c74248
R_Addition_MultipleBond_Disprop family
mjohnson541 Dec 14, 2021
371b9ec
allow retroene for Li
mjohnson541 Dec 14, 2021
765b70b
allow Lirad for Substitution_O
mjohnson541 Dec 14, 2021
38050fb
add Li training reaction to H_Abstraction
mjohnson541 Dec 14, 2021
1e8dbaa
add training reaction to Intra_R_Add_Endocyclic
mjohnson541 Dec 14, 2021
d8f1062
add R_Addition_MultipleBond training reactions
mjohnson541 Dec 14, 2021
a7e8fd2
add Retroene training reaction
mjohnson541 Dec 14, 2021
33eb8ae
add Substitution_O training reactions
mjohnson541 Dec 14, 2021
cac0ab7
allow Lirad in R_Addition_MultipleBond
mjohnson541 Dec 14, 2021
acba8d0
Cation_Addition_MultipleBond reverse direction to improve estimation
mjohnson541 Dec 14, 2021
7358ffa
Cation_Addition_MultipleBond_Disprop reverse direction to improve est…
mjohnson541 Dec 14, 2021
506437f
Li_Abstraction reverse direction to improve estimation
mjohnson541 Dec 14, 2021
906feba
Cation_NO_Ring_Opening reverse direction to improve estimation
mjohnson541 Dec 14, 2021
82f65af
Cation_NO_Substitution reverse direction to improve estimation
mjohnson541 Dec 14, 2021
0f53141
don't allow Li to plate
mjohnson541 Jan 11, 2022
a1b1c86
globally forbid LiC[ONSFCl]
mjohnson541 Feb 14, 2022
5f3c854
forbid carbonate radical reactions
mjohnson541 Feb 14, 2022
fb7e3b4
Added Li families to recommended
mjohnson541 Jan 11, 2022
863c05a
bulk tree generation
mjohnson541 Jan 11, 2022
525a46a
add solvent parameters for ethylene carbonate
mjohnson541 Apr 3, 2022
8e40c5f
add LithiumPrimaryThermo2 library
mjohnson541 Apr 24, 2022
ffbd565
add LithiumPrimaryKinetics2 library
mjohnson541 Apr 24, 2022
5323bcd
add indices of refraction and dielectric constants
mjohnson541 Oct 7, 2022
a1b172b
add Lithium families
mjohnson541 May 10, 2023
92ddb03
add Yunsie's reaction solvation data
mjohnson541 May 10, 2023
3994f11
add LithiumAnalogKinetics library
mjohnson541 May 10, 2023
7c4acc7
add electrocatLithermo library
mjohnson541 May 10, 2023
daa05c1
remove redundant development families
mjohnson541 May 10, 2023
7d7a614
fix Surface Proton Electron Reduction families
mjohnson541 Jun 3, 2023
aee96c0
fix LithiumPrimaryKinetics
mjohnson541 Jun 3, 2023
bce2c51
fix LithiumPrimaryChargedKinetics
mjohnson541 Jun 3, 2023
6750114
fix LithiumPrimaryKinetics2
mjohnson541 Jun 4, 2023
5abda20
fix O2d-S6dd group
mjohnson541 Jun 3, 2023
0bc65db
fix CsOOOring group
mjohnson541 Jun 3, 2023
4c3faff
add training reactions for Cation_R_Recombination
mjohnson541 Mar 10, 2024
b23abeb
train Cation_R_Recombination
mjohnson541 Mar 10, 2024
4f09b7a
train R_Addition_MultipleBond_Disprop
mjohnson541 Mar 10, 2024
b28113f
forbid carbon toss in 1,2_Elimination_LiR
mjohnson541 Mar 10, 2024
1379ec6
forbid carbonatebreak in R_Addition_MultipleBond
mjohnson541 Mar 10, 2024
8e77e10
amend R_Addition_MultipleBond_Disprop training set
mjohnson541 Mar 10, 2024
09b38f3
amend LithiumPrimaryKinetics library based on new results
mjohnson541 Mar 10, 2024
3dc253e
add new Lithium analogy reactions
mjohnson541 Mar 10, 2024
9148f3b
integrate adsorption data from Pynta calculations
mjohnson541 Mar 10, 2024
7fd67a5
add LithiumSurface thermo library
mjohnson541 Mar 10, 2024
33f2211
add lithium surface kinetics libraries
mjohnson541 Mar 10, 2024
ce20ae3
Uncommented some PCET family rules
ssun30 Jul 12, 2024
b0c576b
Changed the sign of electrons in PCET families
ssun30 Aug 6, 2024
1c25ad1
Removed Electrons from PCET_Beta_vdW Groups
ssun30 Sep 24, 2024
2c02748
Allow `cat` of regression diff to fail
ssun30 Oct 9, 2024
41080ee
Tell CI to use for_rmg branch of RMS
ssun30 Nov 24, 2024
0add9cd
Merge pull request #667 for Electrochemistry!
rwest Nov 27, 2024
02c4f6e
make adsorptionPt111 more flexible with lone pairs px
bjkreitz Sep 18, 2024
257d499
add px to (CR3OR)*
bjkreitz Dec 4, 2024
ce20a08
add px to C#*-R-C=*R
bjkreitz Dec 4, 2024
ab42f91
add px to O-*OR
bjkreitz Dec 4, 2024
b919345
add px to (OROR)*
bjkreitz Dec 4, 2024
c9d3b58
add px to (OR2)*
bjkreitz Dec 4, 2024
ed45f13
Merge pull request #665 to make adsorptionPt111 more flexible with lo…
rwest Dec 4, 2024
786039e
Abstraction and Beta Abs
ChrisBNEU Jul 10, 2024
c0bd3c1
Abstraction Beta vdW
ChrisBNEU Jul 10, 2024
346bbd6
Dissociation
ChrisBNEU Jul 10, 2024
80abce3
Dissociation Beta
ChrisBNEU Jul 10, 2024
4367fac
Dissociation Beta vdW
ChrisBNEU Jul 10, 2024
860db04
Dissociation vdW
ChrisBNEU Jul 10, 2024
8dd1ef5
Dissociation vdW C-C degeneracy
bjkreitz Jul 22, 2024
fb75d87
Merge pull request #655 from to correct surface reaction family trees.
rwest Dec 5, 2024
db10995
Update of ccsd(t)f12/augccpvtzf12
JintaoWu98 Jan 16, 2025
c8c2af6
Merge pull request #675 from ReactionMechanismGenerator/update_correc…
alongd Jan 16, 2025
6175164
fixed irreversible reactions from table 2 of Konnov 2015, X2 and X3
NellyMitnik Jan 16, 2025
ca804c5
Merge pull request #676 from ReactionMechanismGenerator/fix_primary_H…
alongd Jan 18, 2025
9927aa4
update CI to use upload artifacts v4
jonwzheng Jan 13, 2025
cd4b6a7
fix runner bug by symlinking libtiff.so.6 to libtiff.so.5
jonwzheng Jan 24, 2025
f48dae1
Merge pull request #674 from ReactionMechanismGenerator/update_artifa…
JacksonBurns Jan 25, 2025
39e35cb
require bond-breaking atoms to be charge neutral
sevyharris Feb 20, 2025
c6f4217
enforce charge neutrality on children of root node to pass test
sevyharris Feb 28, 2025
cbc8f9f
Merge pull request #681 from sevyharris/surface_dissociation_vdW_forb…
sevyharris Feb 28, 2025
ee50a5d
Add thermo entries from Elliott OOQOOH paper
sevyharris Apr 2, 2025
17cd80b
Merge pull request #688 from sevyharris/elliott_OOQOOH
sevyharris Apr 9, 2025
20aa8f7
update CI python version from 3.7 to 3.9
jonwzheng Jun 20, 2025
28a42be
update CI to use new julia install
jonwzheng Jun 20, 2025
b1007d1
fix CI location of julia script
jonwzheng Jun 20, 2025
cb4943f
add juliaup to CI
jonwzheng Jun 20, 2025
15fec99
update CI to use python instead of python-jl
jonwzheng Jun 20, 2025
c50c598
Merge pull request #693 from ReactionMechanismGenerator/fix/failing_ci
JacksonBurns Jun 23, 2025
9a49a70
Add Fe110 to metals
sevyharris Feb 21, 2025
b1ce809
Merge pull request #682 from sevyharris/Fe110_binding_energies
rwest Jul 4, 2025
d54271e
build all supported Python versions using lessons from other conda fix
JacksonBurns Jul 3, 2025
0997ace
python 3.13 doesn't include setuptools, skip it
JacksonBurns Jul 8, 2025
de28774
remove pointless quotes
JacksonBurns Jul 8, 2025
c9410a9
Merge pull request #696 from JacksonBurns/fix/conda_package
JacksonBurns Jul 9, 2025
37e84ed
make polycyclic notebook look a bit better
jonwzheng Jul 1, 2025
d08be64
fix and beautify BM fitting notebook
jonwzheng Jul 1, 2025
8ba0547
update fit thermo groups from thermo library notebook
jonwzheng Jul 1, 2025
c3c5ad7
remove deprecated arrhenius fits notebook
jonwzheng Jul 1, 2025
908f7f0
Merge pull request #694 from ReactionMechanismGenerator/fix/notebooks
JacksonBurns Jul 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 0 additions & 12 deletions .conda/bld.bat

This file was deleted.

5 changes: 0 additions & 5 deletions .conda/conda_build_config.yaml

This file was deleted.

3 changes: 2 additions & 1 deletion .conda/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# For conda build
package:
name: rmgdatabase
version: {{ environ.get('GIT_DESCRIBE_TAG', '') }}
version: 3.3.0

source:
path: ../

build:
noarch: generic
number: {{ environ.get('GIT_DESCRIBE_NUMBER', 0) }}

requirements:
Expand Down
322 changes: 276 additions & 46 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,62 +1,292 @@
name: CI
# CI.yml
# This file contains the script used by GitHub actions to execute the Continuous Integration (CI)
# for RMG-database. This includes building RMG and its dependencies, executing the unit tests,
# functional tests, database tests, and regression tests.
#
# This will run automatically on any push to any branch, but will only run one instance of
# itself at a time per branch (to avoid spawning tons of runners, which prevents them from
# executing).
#
# In the regression testing section of the action the term "Stable" or "Reference" refers to
# the 'correct answers' to the regression tests, i.e. the way that the main branch executes
# them. These 'answers' are re-generated daily, or on any push to main, and retrieved whenever
# a push is made to a non-main branch. The new proposed changes are referred to as "Dynamic".
#
#
# Changelog:
# 2023-10 - Copied from RMG-Py, adapted for RMG-database
# 2024/10/02 Mambaforge is deprecated. Use Miniforge3 instead.

on: [push]
name: Continuous Integration

on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "0 8 * * *"
# runs on all branches on both RMG-Py and forks
push:
# runs on PRs against RMG-database (and anywhere else, but we add this for RMG-database
pull_request:

# this prevents one PR from simultaneously running multiple runners, which will clog up the queue
# and prevent other PRs from running the CI
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# update this to run tests with un merged rmg-py branches
RMG_PY_BRANCH: main

jobs:
build-and-test-linux:
runs-on: ubuntu-latest
strategy:
max-parallel: 5
env: # update this if needed to match a pull request on the RMG-database
RMG_PY_BRANCH: main
# skip scheduled runs from forks
if: ${{ !( github.repository != 'ReactionMechanismGenerator/RMG-database' && github.event_name == 'schedule' ) }}
env:
# This is true only if this is a reference case for the regression testing:
REFERENCE_JOB: ${{ github.ref == 'refs/heads/main' && github.repository == 'ReactionMechanismGenerator/RMG-database' }}
defaults:
run:
shell: bash -l {0}
working-directory: RMG-Py # only applies to 'run' steps
steps:
- uses: actions/checkout@v2
- name: Get RMG-Py source code
run: |
cd ..
git clone -b $RMG_PY_BRANCH https://github.com/ReactionMechanismGenerator/RMG-Py.git
cd RMG-Py
git clone -b arkanepy3 https://github.com/mjohnson541/Q2DTor.git external/Q2DTor
- uses: conda-incubator/setup-miniconda@v2
- name: Checkout RMG-Py
uses: actions/checkout@v4
with:
repository: ReactionMechanismGenerator/RMG-Py
ref: ${{ env.RMG_PY_BRANCH }}
path: RMG-Py

- name: Checkout RMG-database
uses: actions/checkout@v4
with:
environment-file: ../RMG-Py/environment.yml
python-version: 3.7
path: RMG-database

# configures the mamba environment manager and builds the environment
- name: Setup Miniforge Python 3.9
uses: conda-incubator/setup-miniconda@v3
with:
environment-file: RMG-Py/environment.yml
miniforge-variant: Miniforge3
miniforge-version: latest
python-version: 3.9
activate-environment: rmg_env
- name: Conda info
use-mamba: true

# list the environment for debugging purposes
- name: mamba info
run: |
conda info
conda list
- name: Install MOPAC
env:
MOPACKEY: ${{ secrets.MOPACKEY }}
timeout-minutes: 1
continue-on-error: true # allowed to fail on pull request from a forked repository
mamba info
mamba list

- name: Make libtiff Symlink to Avoid Runner Bug
run: | # This action may need to be removed/adjusted in future runs.
if [ ! -f /usr/lib/x86_64-linux-gnu/libtiff.so.5 ] && [ -f /usr/lib/x86_64-linux-gnu/libtiff.so.6 ]; then sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.6 /usr/lib/x86_64-linux-gnu/libtiff.so.5; fi
find /usr/lib -name libtiff*

# modify env variables as directed in the RMG installation instructions
- name: Set Environment Variables
run: |
set +o pipefail
yes 'Yes' | ${CONDA_PREFIX}/bin/mopac "$MOPACKEY"
- name: Compile RMG
RUNNER_CWD=$(pwd)
echo "PYTHONPATH=$RUNNER_CWD/RMG-Py:$PYTHONPATH" >> $GITHUB_ENV
echo "$RUNNER_CWD/RMG-Py" >> $GITHUB_PATH

# RMG build step
- name: make RMG
run: |
cd ../RMG-Py
make clean
make
- name: Trigger RMG-tests
if: ${{ github.event_name == 'push' && github.ref != 'refs/heads/main' && github.ref != 'refs/heads/stable' }} # only push events to branches other than main and stable

- name: Setup Juliaup
uses: julia-actions/install-juliaup@v2
with:
channel: '1.10'

# RMS installation and linking to Julia
- name: Install and link Julia dependencies
timeout-minutes: 120 # this usually takes 20-45 minutes (or hangs for 6+ hours).
run: |
. install_rms.sh

- name: Install Q2DTor
run: echo "" | make q2dtor

# non-regression testing
- name: Run Database Tests
run: make test-database

# Regression Testing - Test Execution
- name: Regression Tests - Execution
id: regression-execution
timeout-minutes: 60
run: |
for regr_test in aromatics liquid_oxidation nitrogen oxidation sulfur superminimal RMS_constantVIdealGasReactor_superminimal RMS_CSTR_liquid_oxidation RMS_liquidSurface_ch4o2cat;
do
if python rmg.py test/regression/"$regr_test"/input.py; then
echo "$regr_test" "Executed Successfully"
else
echo "$regr_test" "Failed to Execute" | tee -a $GITHUB_STEP_SUMMARY
export FAILED=Yes
fi
done
if [[ ${FAILED} ]]; then
echo "One or more regression tests could not be executed." | tee -a $GITHUB_STEP_SUMMARY
echo "Please download the failed results or check the above log to see why." | tee -a $GITHUB_STEP_SUMMARY
exit 1
fi

# Upload Regression Results as Failed if above step failed
- name: Upload Failed Results
if: ${{ failure() && steps.regression-execution.conclusion == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: failed_regression_results
path: |
RMG-Py/test/regression

# Upload Regression Results as Dynamic if Push to non-main Branch
- name: Upload Results as Dynamic
if: ${{ env.REFERENCE_JOB == 'false' }}
uses: actions/upload-artifact@v4
with:
name: dynamic_regression_results
path: |
RMG-Py/test/regression

- name: mkdir stable_regression_results
if: ${{ env.REFERENCE_JOB == 'false' }}
run: mkdir stable_regression_results

# Retrieve Stable Results for reference
- name : Find ID of Reference Results
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# this will search for the last successful execution of CI on main
run: |
run_id=$(gh run list -R ReactionMechanismGenerator/RMG-Py --workflow="Continuous Integration" --branch main --limit 15 --json databaseId,conclusion --jq 'map(select(.conclusion == "success")) | .[0].databaseId')
echo "CI_RUN_ID=$run_id" >> $GITHUB_ENV

- name: Retrieve Stable Regression Results
if: ${{ env.REFERENCE_JOB == 'false' }}
uses: actions/download-artifact@v4
with:
# download stable regression results
run-id: ${{ env.CI_RUN_ID }}
repository: ReactionMechanismGenerator/RMG-Py
github-token: ${{ secrets.GITHUB_TOKEN }}
name: stable_regression_results
path: RMG-Py/stable_regression_results

# Regression Testing - Actual Comparisons
- name: Regression Tests - Compare to Baseline
id: regression-comparison
if: ${{ env.REFERENCE_JOB == 'false' }}
env:
GH_TOKEN: ${{ secrets.RMG_DEV_TOKEN }}
run: ./trigger-rmg-tests.sh
- name: Unit tests
run: |
cd ../RMG-Py
make test-unittests
- name: Functional tests
if: ${{ success() || failure() }} # Run even if the unit tests failed (but not if they were cancelled)
run: |
cd ../RMG-Py
make test-functional
- name: Database tests
if: ${{ success() || failure() }} # Run even if the functional tests failed (but not if they were cancelled)
run: |
cd ../RMG-Py
make test-database
REFERENCE: stable_regression_results
run: |
exec 2> >(tee -a regression.stderr >&2) 1> >(tee -a regression.stdout)
mkdir -p "test/regression-diff"
for regr_test in aromatics liquid_oxidation nitrogen oxidation sulfur superminimal RMS_constantVIdealGasReactor_superminimal RMS_CSTR_liquid_oxidation;
do
echo ""
echo "### Regression test $regr_test:"
# Memory Usage and Execution Time
echo -n 'Reference: '
grep "Execution time" $REFERENCE/"$regr_test"/RMG.log | tail -1
echo -n 'Current: '
grep "Execution time" test/regression/"$regr_test"/RMG.log | tail -1
echo -n 'Reference: '
grep "Memory used:" $REFERENCE/"$regr_test"/RMG.log | tail -1
echo -n 'Current: '
grep "Memory used:" test/regression/"$regr_test"/RMG.log | tail -1

echo "<details>"
# Compare the edge and core
if python scripts/checkModels.py \
"$regr_test-core" \
$REFERENCE/"$regr_test"/chemkin/chem_annotated.inp \
$REFERENCE/"$regr_test"/chemkin/species_dictionary.txt \
test/regression/"$regr_test"/chemkin/chem_annotated.inp \
test/regression/"$regr_test"/chemkin/species_dictionary.txt
then
echo "<summary>$regr_test Passed Core Comparison ✅</summary>"
else
echo "<summary>$regr_test Failed Core Comparison ❌</summary>"
cp "$regr_test-core.log" test/regression-diff/
export FAILED=Yes
fi
echo "" # blank line so next block is interpreted as markdown
cat "$regr_test-core.log" || (echo "Dumping the whole log failed, please download it from GitHub actions. Here are the first 100 lines:" && head -n100 "$regr_test-core.log")
echo "</details>"
echo "<details>"
if python scripts/checkModels.py \
"$regr_test-edge" \
$REFERENCE/"$regr_test"/chemkin/chem_edge_annotated.inp \
$REFERENCE/"$regr_test"/chemkin/species_edge_dictionary.txt \
test/regression/"$regr_test"/chemkin/chem_edge_annotated.inp \
test/regression/"$regr_test"/chemkin/species_edge_dictionary.txt
then
echo "<summary>$regr_test Passed Edge Comparison ✅</summary>"
else
echo "<summary>$regr_test Failed Edge Comparison ❌</summary>"
cp "$regr_test-edge.log" test/regression-diff/
export FAILED=Yes
fi
echo "" # blank line so next block is interpreted as markdown
cat "$regr_test-edge.log" || (echo "Dumping the whole log failed, please download it from GitHub actions. Here are the first 100 lines:" && head -n100 "$regr_test-core.log")
echo "</details>"

# Check for Regression between Reference and Dynamic (skip superminimal)
if [ -f test/regression/"$regr_test"/regression_input.py ];
then
echo "<details>"
if python rmgpy/tools/regression.py \
test/regression/"$regr_test"/regression_input.py \
$REFERENCE/"$regr_test"/chemkin \
test/regression/"$regr_test"/chemkin
then
echo "<summary>$regr_test Passed Observable Testing ✅</summary>"
else
echo "<summary>$regr_test Failed Observable Testing ❌</summary>"
export FAILED=Yes
fi
echo "</details>"
fi
echo ""
done
if [[ ${FAILED} ]]; then
echo "⚠️ One or more regression tests failed." | tee -a $GITHUB_STEP_SUMMARY >&2
echo "Please download the failed results and run the tests locally or check the log to see why." | tee -a $GITHUB_STEP_SUMMARY >&2
fi

- name: Prepare Results for PR Comment
if: ${{ env.REFERENCE_JOB == 'false' }}
env:
PR_NUMBER: ${{ github.event.number || github.event.after || github.event_name }}
run: |
echo $PR_NUMBER > summary.txt
echo "## Regression Testing Results" >> summary.txt
cat regression.stderr >> summary.txt
echo "<details>" >> summary.txt
echo "<summary>Detailed regression test results.</summary>" >> summary.txt
cat regression.stdout >> summary.txt
echo "</details>" >> summary.txt
echo "" >> summary.txt
echo "_beep boop this comment was written by a bot_ :robot:" >> summary.txt
cat summary.txt > $GITHUB_STEP_SUMMARY

- name: Upload regression summary artifact
# the annotate workflow uses this artifact to add a comment to the PR
uses: actions/upload-artifact@v4
if : ${{ github.event_name == 'pull_request' }}
with:
name: regression_summary
path: RMG-Py/summary.txt

- name: Upload Comparison Results
uses: actions/upload-artifact@v4
with:
name: regression_test_comparison_results
path: |
RMG-Py/test/regression-diff
Loading
Loading