Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test PR for jenkins CI pipeline #1

Closed
wants to merge 18 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,4 @@ States Government.

## UPP Terms of Use Notice

The UPP Terms of Use Notice is available at: https://github.com/NOAA-EMC/UPP/wiki/UPP-Terms-of-Use-Notice
The UPP Terms of Use Notice is available at: https://github.com/NOAA-EMC/UPP/wiki/UPP-Terms-of-Use-Notice
124 changes: 124 additions & 0 deletions ci/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
pipeline {
agent none
stages {
stage('UPP Regression Tests') {
agent {
label 'built-in'
}
steps {
script {
for (label in pullRequest.labels) {
if ((label.matches("orion"))) {
env.CHOICE_NODE='orion'
}
else if ((label.matches("hera"))) {
env.CHOICE_NODE='hera'
}
else if ((label.matches("hercules"))) {
env.CHOICE_NODE='hercules'
}
else if ((label.matches("jet"))) {
env.CHOICE_NODE='jet'
}
else {
env.CHOICE_NODE='none'
}
}
// Why do I need another if..block, because it just works this way.

if (CHOICE_NODE == 'orion') {
echo "Starting up orion ${CHOICE_NODE}...this might take 5-10 minutes...please be patient."
}
else if (CHOICE_NODE == 'jet') {
echo "Starting up jet ${CHOICE_NODE}...this might take 5-10 minutes...please be patient."
}
else if (CHOICE_NODE == 'hercules') {
echo "Starting up hera ${CHOICE_NODE}...this might take 5-10 minutes...please be patient."
}
else if (CHOICE_NODE == 'hera') {
echo "Starting up hera ${CHOICE_NODE}...this might take 5-10 minutes...please be patient."
}
else {
echo "${CHOICE_NODE} is NOT a platform, moving on..."
}
}
}
}
stage('Run UPP RTs on Hera') {
agent {
label "hera"
}
environment {
ACCNR = 'epic'
NODE_PATH = '/scratch2/NAGAPE/epic/UPP/jenkins-ci'
}
steps {

cleanWs()
checkout scm
sh '''
echo $(pwd)
cd ci/
cp /scratch1/NCEPDEV/nems/Fernando.Andrade-maldonado/scripts/rt.sh .
./rt.sh -a ${ACCNR} -h /scratch2/NAGAPE/epic/UPP/test_suite/ -r `pwd`/rundir -t `pwd`/../
python ./rt-status.py
'''
}
}
stage('Run UPP RTs on Orion') {
agent {
label "orion"
}
environment {
ACCNR = 'epic'
NODE_PATH = '/work/noaa/epic/UPP/jenkins-ci/orion'
}
steps {

cleanWs()
checkout scm
sh '''
echo $(pwd)
cd ci/
cp /work/noaa/epic-ps/nandoam/scripts/rt.sh .
./rt.sh -a ${ACCNR} -h /work/noaa/epic/UPP/ -r `pwd`/rundir -t `pwd`/../
python ./rt-status.py
'''
}
}
stage('Run UPP RTs on Hercules') {
agent {
label "hercules"
}
environment {
ACCNR = 'epic'
NODE_PATH = '/work/noaa/epic/UPP/jenkins-ci/hercules'
}
steps {

cleanWs()
checkout scm
sh '''

'''
}
}
stage('Run UPP RTs on Jet') {
agent {
label "jet"
}
environment {
ACCNR = 'hfv3gfs'
NODE_PATH = '/mnt/lfs4/HFIP/hfv3gfs/role.epic/'
}
steps {

cleanWs()
checkout scm
sh '''

'''
}
}
}
}
56 changes: 56 additions & 0 deletions ci/rt-status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# check the UPP RT rundir for .diff files that would indicate a change in test results

'''
Updates
Aug/29/2023 - Fernando Andrade-Maldonado: Script creation

'''

import os

# files used in result comparison
tests = [
'nmmb',
'gfs',
'fv3gefs',
'fv3r',
'rap',
'hrrr',
'fv3hafs',
'rtma'
]

# look for .diff files
# every case has its own directory in rundir
# loop through every test case sub directory and files, then match with the test name
def check_for_diff(tests):
changed = False
for case_dir in os.listdir('./rundir'):
for file in os.listdir('./rundir/{}'.format(case_dir)):
if file.endswith('.diff'):
diff_case = ''
for test in tests:
if test in case_dir:
diff_case = test
if case_dir.endswith('pe_test'):
# the rap pe test currently has a false positive bug with WRFPRS
if 'rap' in case_dir and file == 'WRFPRS.GrbF16.diff':
with open('./rundir/{}/{}'.format(case_dir, file)) as f:
data = f.readlines()
if len(data) == 1 and '708:195469472:CDCON:convective cloud layer:rpn_corr=-nan:rpn_rms=undefined' in data[0]:
continue
print('There are changes in results for case {}_pe_test in {}'.format(diff_case, file.replace(".diff", "")))
else:
print('There are changes in results for case {} in {}'.format(diff_case, file.replace(".diff", "")))
changed = True
if changed:
print('Refer to .diff files in rundir: {}/rundir for details on differences in results for each case.'.format(os.getcwd()))
else:
print('No changes in test results detected.')


def main():
check_for_diff(tests)

if __name__ == "__main__":
main()
126 changes: 1 addition & 125 deletions docs/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = NO

OUTPUT_LANGUAGE = English

# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all generated output in the proper direction.
# Possible values are: None, LTR, RTL and Context.
# The default value is: None.

OUTPUT_TEXT_DIRECTION = None

# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
Expand Down Expand Up @@ -1111,44 +1103,6 @@ USE_HTAGS = NO

VERBATIM_HEADERS = YES

# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see:
# http://clang.llvm.org/) for more accurate parsing at the cost of reduced
# performance. This can be particularly helpful with template rich C++ code for
# which doxygen's built-in parser lacks the necessary type information.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO.

CLANG_ASSISTED_PARSING = NO

# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to
# YES then doxygen will add the directory of each input to the include path.
# The default value is: YES.

CLANG_ADD_INC_PATHS = YES

# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.

CLANG_OPTIONS =

# If clang assisted parsing is enabled you can provide the clang parser with the
# path to the directory containing a file called compile_commands.json. This
# file is the compilation database (see:
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
# options used when the source files were built. This is equivalent to
# specifying the -p option to a clang tool, such as clang-check. These options
# will then be passed to the parser. Any options specified with CLANG_OPTIONS
# will be added as well.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.

CLANG_DATABASE_PATH =

#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
Expand Down Expand Up @@ -1590,17 +1544,6 @@ HTML_FORMULA_FORMAT = png

FORMULA_FONTSIZE = 10

# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
# Note that when changing this option you need to delete any form_*.png files in
# the HTML output directory before the changes have effect.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.

FORMULA_TRANSPARENT = YES

# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
# to create new LaTeX commands to be used in formulas as building blocks. See
# the section "Including formulas" for details.
Expand Down Expand Up @@ -1809,7 +1752,7 @@ COMPACT_LATEX = NO
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.

PAPER_TYPE = a4wide
PAPER_TYPE = a4

# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. The package can be specified just
Expand Down Expand Up @@ -1904,16 +1847,6 @@ LATEX_BATCHMODE = NO

LATEX_HIDE_INDICES = NO

# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
# code with syntax highlighting in the LaTeX output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_SOURCE_CODE = NO

# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
Expand Down Expand Up @@ -1994,16 +1927,6 @@ RTF_STYLESHEET_FILE =

RTF_EXTENSIONS_FILE =

# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
# with syntax highlighting in the RTF output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.

RTF_SOURCE_CODE = NO

#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
Expand Down Expand Up @@ -2100,15 +2023,6 @@ GENERATE_DOCBOOK = NO

DOCBOOK_OUTPUT = docbook

# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
# program listings (including syntax highlighting and cross-referencing
# information) to the DOCBOOK output. Note that enabling this will significantly
# increase the size of the DOCBOOK output.
# The default value is: NO.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.

DOCBOOK_PROGRAMLISTING = NO

#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
Expand Down Expand Up @@ -2287,15 +2201,6 @@ EXTERNAL_PAGES = NO
# Configuration options related to the dot tool
#---------------------------------------------------------------------------

# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
# The default value is: YES.

CLASS_DIAGRAMS = YES

# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
Expand Down Expand Up @@ -2328,23 +2233,6 @@ HAVE_DOT = NO

DOT_NUM_THREADS = 0

# When you want a differently looking font in the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make
# sure dot is able to find the font, which can be done by putting it in a
# standard location or by setting the DOTFONTPATH environment variable or by
# setting DOT_FONTPATH to the directory containing the font.
# The default value is: Helvetica.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_FONTNAME = Helvetica

# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
# dot graphs.
# Minimum value: 4, maximum value: 24, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_FONTSIZE = 10

# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
Expand Down Expand Up @@ -2581,18 +2469,6 @@ DOT_GRAPH_MAX_NODES = 50

MAX_DOT_GRAPH_DEPTH = 0

# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not seem
# to support this out of the box.
#
# Warning: Depending on the platform used, enabling this option may lead to
# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_TRANSPARENT = NO

# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
Expand Down
6 changes: 5 additions & 1 deletion jobs/J_NCEPPOST
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,11 @@ env
#########################################################
# Execute the Script
#########################################################
$SCRgfs/ex${RUN}_atmos_nceppost.sh
if [ $WAFSF = "YES" ] ; then
$SCRgfs/exwafs_atmos_nceppost.sh
else
$SCRgfs/ex${RUN}_atmos_nceppost.sh
fi

##############################
# Remove the Temporary working directory
Expand Down
Loading
Loading