Skip to content

Commit 66eab64

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into feature/build_jedi_exe
* upstream/develop: Add nest capability (NOAA-EMC#2545) Update gfs_utils for Gaea (NOAA-EMC#2556) Updated GEMPAK version and APRUN launcher. (NOAA-EMC#2555) Utilize scale-dependent localization for atmospheric analysis (NOAA-EMC#2542) Remove implicit symlink names (NOAA-EMC#2527) Fixes sea ice archiving (NOAA-EMC#2541) Link ensemble analysis increment files to COMROOT for warm_start (NOAA-EMC#2553) Launch Multiple Platforms to Jenkins with polling (NOAA-EMC#2548)
2 parents 264f2fa + a005244 commit 66eab64

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1271
-265
lines changed

ci/Jenkinsfile

+47-18
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,60 @@ pipeline {
2121
// Each Jenknis Node is connected to said machine via an JAVA agent via an ssh tunnel
2222
// no op 2
2323

24-
stage('Get Machine') {
24+
stage('1. Get Machine') {
2525
agent { label 'built-in' }
2626
steps {
2727
script {
28-
machine = 'none'
29-
for (label in pullRequest.labels) {
30-
echo "Label: ${label}"
31-
if ((label.matches('CI-Hera-Ready'))) {
32-
machine = 'hera'
33-
} else if ((label.matches('CI-Orion-Ready'))) {
34-
machine = 'orion'
35-
} else if ((label.matches('CI-Hercules-Ready'))) {
36-
machine = 'hercules'
28+
29+
def causes = currentBuild.rawBuild.getCauses()
30+
def isSpawnedFromAnotherJob = causes.any { cause ->
31+
cause instanceof hudson.model.Cause.UpstreamCause
32+
}
33+
34+
def run_nodes = []
35+
if (isSpawnedFromAnotherJob) {
36+
echo "machine being set to value passed to this spawned job"
37+
echo "passed machine: ${params.machine}"
38+
machine = params.machine
39+
} else {
40+
echo "This is parent job so getting list of nodes matching labels:"
41+
for (label in pullRequest.labels) {
42+
if (label.matches("CI-(.*?)-Ready")) {
43+
def Machine_name = label.split('-')[1].toString()
44+
jenkins.model.Jenkins.get().computers.each { c ->
45+
if (c.node.selfLabel.name == "${Machine_name}-EMC") {
46+
run_nodes.add(c.node.selfLabel.name)
47+
}
48+
}
49+
}
3750
}
38-
} // createing a second machine varible with first letter capital
39-
// because the first letter of the machine name is captitalized in the GitHub labels
40-
Machine = machine[0].toUpperCase() + machine.substring(1)
51+
// Spawning all the jobs on the nodes matching the labels
52+
if (run_nodes.size() > 1) {
53+
run_nodes.init().each { node ->
54+
def machine_name = node.split('-')[0].toLowerCase()
55+
echo "Spawning job on node: ${node} with machine name: ${machine_name}"
56+
build job: "/global-workflow/EMC-Global-Pipeline/PR-${env.CHANGE_ID}", parameters: [
57+
string(name: 'machine', value: machine_name),
58+
string(name: 'Node', value: node) ],
59+
wait: false
60+
}
61+
machine = run_nodes.last().split('-')[0].toLowerCase()
62+
echo "Running parent job: ${machine}"
63+
} else {
64+
machine = run_nodes[0].split('-')[0].toLowerCase()
65+
echo "Running only the parent job: ${machine}"
66+
}
67+
}
4168
}
4269
}
4370
}
4471

45-
stage('Get Common Workspace') {
72+
stage('2. Get Common Workspace') {
4673
agent { label "${machine}-emc" }
4774
steps {
4875
script {
76+
Machine = machine[0].toUpperCase() + machine.substring(1)
77+
echo "Getting Common Workspace for ${Machine}"
4978
ws("${custom_workspace[machine]}/${env.CHANGE_ID}") {
5079
properties([parameters([[$class: 'NodeParameterDefinition', allowedSlaves: ['built-in', 'Hera-EMC', 'Orion-EMC'], defaultSlaves: ['built-in'], name: '', nodeEligibility: [$class: 'AllNodeEligibility'], triggerIfResult: 'allCases']])])
5180
HOME = "${WORKSPACE}"
@@ -57,7 +86,7 @@ pipeline {
5786
}
5887
}
5988

60-
stage('Build System') {
89+
stage('3. Build System') {
6190
matrix {
6291
agent { label "${machine}-emc" }
6392
//options {
@@ -141,7 +170,7 @@ pipeline {
141170
}
142171
}
143172

144-
stage('Run Tests') {
173+
stage('4. Run Tests') {
145174
failFast false
146175
matrix {
147176
agent { label "${machine}-emc" }
@@ -216,7 +245,7 @@ pipeline {
216245
STATUS = 'Failed'
217246
try {
218247
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --remove-label "CI-${Machine}-Running" --add-label "CI-${Machine}-${STATUS}" """, returnStatus: true)
219-
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "Experiment ${Case} **FAILED** on ${Machine}\nin\\`${HOME}/RUNTESTS/${pslot}\\`" """)
248+
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "Experiment ${Case} **FAILED** on ${Machine} in\n\\`${HOME}/RUNTESTS/${pslot}\\`" """)
220249
} catch (Exception e) {
221250
echo "Failed to update label from Running to ${STATUS}: ${e.getMessage()}"
222251
}
@@ -229,7 +258,7 @@ pipeline {
229258
}
230259
}
231260
}
232-
stage( 'FINALIZE' ) {
261+
stage( '5. FINALIZE' ) {
233262
when {
234263
expression {
235264
STATUS == 'Passed'

env/HERA.env

-2
Original file line numberDiff line numberDiff line change
@@ -288,15 +288,13 @@ elif [[ "${step}" = "gempak" ]]; then
288288
export CFP_MP="YES"
289289

290290
if [[ ${CDUMP} == "gfs" ]]; then
291-
npe_gempak=${npe_gempak_gfs}
292291
npe_node_gempak=${npe_node_gempak_gfs}
293292
fi
294293

295294
nth_max=$((npe_node_max / npe_node_gempak))
296295

297296
export NTHREADS_GEMPAK=${nth_gempak:-1}
298297
[[ ${NTHREADS_GEMPAK} -gt ${nth_max} ]] && export NTHREADS_GEMPAK=${nth_max}
299-
export APRUN="${launcher} -n ${npe_gempak} ${mpmd_opt}"
300298

301299

302300
elif [[ "${step}" = "fit2obs" ]]; then

gempak/ush/gdas_ecmwf_meta_ver.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fi
2424

2525
export COMIN="gdas.${PDY}${cyc}"
2626
if [[ ! -L ${COMIN} ]]; then
27-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
27+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2828
fi
2929
vergrid="F-GDAS | ${PDY:2}/0600"
3030
fcsthr="0600f006"
@@ -49,7 +49,7 @@ for area in ${areas}; do
4949
sdatenum=$(date --utc +%y%m%d -d "${PDY} ${cyc2} - ${fhr} hours")
5050

5151
if [[ ! -L "ecmwf.20${sdatenum}" ]]; then
52-
ln -sf "${COMINecmwf}/ecmwf.20${sdatenum}/gempak" "ecmwf.20${sdatenum}"
52+
${NLN} "${COMINecmwf}/ecmwf.20${sdatenum}/gempak" "ecmwf.20${sdatenum}"
5353
fi
5454
gdfile="ecmwf.20${sdatenum}/ecmwf_glob_20${sdatenum}12"
5555

gempak/ush/gdas_meta_loop.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ device="nc | gdasloop.meta"
1313
#
1414
export COMIN="${RUN}.${PDY}${cyc}"
1515
if [[ ! -L "${COMIN}" ]]; then
16-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
16+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
1717
fi
1818

1919
if [[ "${envir}" == "para" ]] ; then
@@ -41,7 +41,7 @@ for (( fhr=24; fhr<=144; fhr+=24 )); do
4141
YMD=${day} HH=${cyc} GRID=1p00 declare_from_tmpl "COM_ATMOS_GEMPAK_1p00_past:COM_ATMOS_GEMPAK_TMPL"
4242
export COMIN="${RUN}.${day}${cycle}"
4343
if [[ ! -L "${COMIN}" ]]; then
44-
ln -sf "${COM_ATMOS_GEMPAK_1p00_past}" "${COMIN}"
44+
${NLN} "${COM_ATMOS_GEMPAK_1p00_past}" "${COMIN}"
4545
fi
4646
gdfile="${COMIN}/gdas_1p00_${day}${cycle}f000"
4747

gempak/ush/gdas_meta_na.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ device="nc | gdas.meta"
1313
#
1414
export COMIN="${RUN}.${PDY}${cyc}"
1515
if [[ ! -L "${COMIN}" ]]; then
16-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
16+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
1717
fi
1818

1919
if [[ "${envir}" == "para" ]] ; then

gempak/ush/gdas_ukmet_meta_ver.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ cp "${HOMEgfs}/gempak/fix/datatype.tbl" datatype.tbl
2323
# SET CURRENT CYCLE AS THE VERIFICATION GRIDDED FILE.
2424
export COMIN="gdas.${PDY}${cyc}"
2525
if [[ ! -L ${COMIN} ]]; then
26-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
26+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2727
fi
2828
vergrid="F-GDAS | ${PDY:2}/0600"
2929
fcsthr="0600f006"
@@ -54,7 +54,7 @@ for area in ${areas}; do
5454
cyclenum=${stime:6}
5555

5656
if [[ ! -L "ukmet.20${sdatenum}" ]]; then
57-
ln -sf "${COMINukmet}/ukmet.20${sdatenum}/gempak" "ukmet.20${sdatenum}"
57+
${NLN} "${COMINukmet}/ukmet.20${sdatenum}/gempak" "ukmet.20${sdatenum}"
5858
fi
5959
gdfile="ukmet.20${sdatenum}/ukmet_20${sdatenum}${cyclenum}${dgdattim}"
6060

gempak/ush/gfs_meta_ak.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ device="nc | gfs.meta.ak"
2020
#
2121
export COMIN="${RUN}.${PDY}${cyc}"
2222
if [[ ! -L ${COMIN} ]]; then
23-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
23+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2424
fi
2525

2626
fend=F216

gempak/ush/gfs_meta_bwx.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ device="nc | ${metaname}"
2121
#
2222
export COMIN="${RUN}.${PDY}${cyc}"
2323
if [[ ! -L ${COMIN} ]]; then
24-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
24+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2525
fi
2626

2727
fend=F180

gempak/ush/gfs_meta_comp.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ for cycle in $(seq -f "%02g" -s ' ' 0 "${STEP_GFS}" "${cyc}"); do
2929
for file_in in "${gempak_dir}/gfs_1p00_${PDY}${cycle}f"*; do
3030
file_out="${COMIN}/$(basename "${file_in}")"
3131
if [[ ! -L "${file_out}" ]]; then
32-
ln -sf "${file_in}" "${file_out}"
32+
${NLN} "${file_in}" "${file_out}"
3333
fi
3434
done
3535
done
3636

3737
export HPCNAM="nam.${PDY}"
3838
if [[ ! -L ${HPCNAM} ]]; then
39-
ln -sf "${COMINnam}/nam.${PDY}/gempak" "${HPCNAM}"
39+
${NLN} "${COMINnam}/nam.${PDY}/gempak" "${HPCNAM}"
4040
fi
4141

4242
#
@@ -100,7 +100,7 @@ for gareas in US NP; do
100100
HPCGFS="${RUN}.${init_time}"
101101
if [[ ! -L ${HPCGFS} ]]; then
102102
YMD="${init_PDY}" HH="${init_cyc}" GRID="1p00" declare_from_tmpl source_dir:COM_ATMOS_GEMPAK_TMPL
103-
ln -sf "${source_dir}" "${HPCGFS}"
103+
${NLN} "${source_dir}" "${HPCGFS}"
104104
fi
105105

106106
if [[ ${init_PDY} == "${PDY}" ]]; then
@@ -230,7 +230,7 @@ EOF
230230
ukmet_cyc=${ukmet_date:8:2}
231231
export HPCUKMET=ukmet.${ukmet_PDY}
232232
if [[ ! -L "${HPCUKMET}" ]]; then
233-
ln -sf "${COMINukmet}/ukmet.${ukmet_PDY}/gempak" "${HPCUKMET}"
233+
${NLN} "${COMINukmet}/ukmet.${ukmet_PDY}/gempak" "${HPCUKMET}"
234234
fi
235235
grid2="F-UKMETHPC | ${ukmet_PDY:2}/${ukmet_date}"
236236

gempak/ush/gfs_meta_crb.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ device="nc | ${metaname}"
2323
#
2424
export COMIN="${RUN}.${PDY}${cyc}"
2525
if [[ ! -L ${COMIN} ]]; then
26-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
26+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2727
fi
2828

2929
# DEFINE YESTERDAY
@@ -254,13 +254,13 @@ if [[ ${cyc} == 00 ]] ; then
254254
HPCECMWF_m1=ecmwf.${PDY}
255255
export HPCUKMET=ukmet.${PDYm1}
256256
if [[ ! -L "${HPCECMWF}" ]]; then
257-
ln -sf "${COMINecmwf}ecmwf.${PDY}/gempak" "${HPCECMWF}"
257+
${NLN} "${COMINecmwf}ecmwf.${PDY}/gempak" "${HPCECMWF}"
258258
fi
259259
if [[ ! -L "${HPCECMWF_m1}" ]]; then
260-
ln -sf "${COMINecmwf}ecmwf.${PDYm1}/gempak" "${HPCECMWF_m1}"
260+
${NLN} "${COMINecmwf}ecmwf.${PDYm1}/gempak" "${HPCECMWF_m1}"
261261
fi
262262
if [[ ! -L "${HPCUKMET}" ]]; then
263-
ln -sf "${COMINukmet}/ukmet.${PDYm1}/gempak" "${HPCUKMET}"
263+
${NLN} "${COMINukmet}/ukmet.${PDYm1}/gempak" "${HPCUKMET}"
264264
fi
265265

266266
grid1="F-${MDL} | ${PDY:2}/${cyc}00"

gempak/ush/gfs_meta_hi.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ device="nc | mrfhi.meta"
1717
#
1818
export COMIN="${RUN}.${PDY}${cyc}"
1919
if [[ ! -L ${COMIN} ]]; then
20-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
20+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2121
fi
2222

2323
if [[ "${envir}" = "prod" ]] ; then

gempak/ush/gfs_meta_hur.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ device="nc | ${metaname}"
2323
#
2424
export COMIN="${RUN}.${PDY}${cyc}"
2525
if [[ ! -L ${COMIN} ]]; then
26-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
26+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2727
fi
2828

2929
#
@@ -307,13 +307,13 @@ if [[ ${cyc} -eq 00 ]] ; then
307307
HPCECMWF_m1=ecmwf.${PDY}
308308
export HPCUKMET=ukmet.${PDYm1}
309309
if [[ ! -L "${HPCECMWF}" ]]; then
310-
ln -sf "${COMINecmwf}ecmwf.${PDY}/gempak" "${HPCECMWF}"
310+
${NLN} "${COMINecmwf}ecmwf.${PDY}/gempak" "${HPCECMWF}"
311311
fi
312312
if [[ ! -L "${HPCECMWF_m1}" ]]; then
313313
Ln -sf "${COMINecmwf}ecmwf.${PDYm1}/gempak" "${HPCECMWF_m1}"
314314
fi
315315
if [[ ! -L "${HPCUKMET}" ]]; then
316-
ln -sf "${COMINukmet}/ukmet.${PDYm1}/gempak" "${HPCUKMET}"
316+
${NLN} "${COMINukmet}/ukmet.${PDYm1}/gempak" "${HPCUKMET}"
317317
fi
318318
grid1="F-${MDL} | ${PDY:2}/${cyc}00"
319319
grid2="${HPCECMWF_m1}/ecmwf_glob_${PDYm1}12"

gempak/ush/gfs_meta_mar_atl.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ cp "${HOMEgfs}/gempak/fix/datatype.tbl" datatype.tbl
1717
#
1818
export COMIN="${RUN}.${PDY}${cyc}"
1919
if [[ ! -L ${COMIN} ]]; then
20-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
20+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2121
fi
2222

2323
mdl=gfs

gempak/ush/gfs_meta_mar_comp.sh

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ for cycle in $(seq -f "%02g" -s ' ' 0 "${STEP_GFS}" "${cyc}"); do
2020
for file_in in "${gempak_dir}/gfs_1p00_${PDY}${cycle}f"*; do
2121
file_out="${COMIN}/$(basename "${file_in}")"
2222
if [[ ! -L "${file_out}" ]]; then
23-
ln -sf "${file_in}" "${file_out}"
23+
${NLN} "${file_in}" "${file_out}"
2424
fi
2525
done
2626
done
@@ -31,7 +31,7 @@ done
3131
#
3232
export HPCNAM="nam.${PDY}"
3333
if [[ ! -L ${HPCNAM} ]]; then
34-
ln -sf "${COMINnam}/nam.${PDY}/gempak" "${HPCNAM}"
34+
${NLN} "${COMINnam}/nam.${PDY}/gempak" "${HPCNAM}"
3535
fi
3636

3737
mdl=gfs
@@ -77,7 +77,7 @@ for garea in NAtl NPac; do
7777
HPCGFS="${RUN}.${init_time}"
7878
if [[ ! -L ${HPCGFS} ]]; then
7979
YMD="${init_PDY}" HH="${init_cyc}" GRID="1p00" declare_from_tmpl source_dir:COM_ATMOS_GEMPAK_TMPL
80-
ln -sf "${source_dir}" "${HPCGFS}"
80+
${NLN} "${source_dir}" "${HPCGFS}"
8181
fi
8282

8383
case ${cyc} in
@@ -222,7 +222,7 @@ EOF
222222

223223
export HPCUKMET="ukmet.${ukmet_PDY}"
224224
if [[ ! -L "${HPCUKMET}" ]]; then
225-
ln -sf "${COMINukmet}/ukmet.${ukmet_PDY}/gempak" "${HPCUKMET}"
225+
${NLN} "${COMINukmet}/ukmet.${ukmet_PDY}/gempak" "${HPCUKMET}"
226226
fi
227227
grid2="F-UKMETHPC | ${ukmet_PDY:2}/${ukmet_date}"
228228

@@ -310,7 +310,7 @@ EOF
310310

311311
HPCECMWF=ecmwf.${PDY}
312312
if [[ ! -L "${HPCECMWF}" ]]; then
313-
ln -sf "${COMINecmwf}/ecmwf.${ecmwf_PDY}/gempak" "${HPCECMWF}"
313+
${NLN} "${COMINecmwf}/ecmwf.${ecmwf_PDY}/gempak" "${HPCECMWF}"
314314
fi
315315
grid2="${HPCECMWF}/ecmwf_glob_${ecmwf_date}"
316316

gempak/ush/gfs_meta_mar_pac.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ cp "${HOMEgfs}/gempak/fix/datatype.tbl" datatype.tbl
1717
#
1818
export COMIN="${RUN}.${PDY}${cyc}"
1919
if [[ ! -L ${COMIN} ]]; then
20-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
20+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2121
fi
2222

2323
mdl=gfs

gempak/ush/gfs_meta_mar_ql.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ cp "${HOMEgfs}/gempak/fix/datatype.tbl" datatype.tbl
1717
#
1818
export COMIN="${RUN}.${PDY}${cyc}"
1919
if [[ ! -L ${COMIN} ]]; then
20-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
20+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2121
fi
2222

2323
mdl=gfs

gempak/ush/gfs_meta_mar_skewt.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ cp "${HOMEgfs}/gempak/fix/datatype.tbl" datatype.tbl
1717
#
1818
export COMIN="${RUN}.${PDY}${cyc}"
1919
if [[ ! -L ${COMIN} ]]; then
20-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
20+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2121
fi
2222

2323
mdl=gfs

gempak/ush/gfs_meta_mar_ver.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ cp "${HOMEgfs}/gempak/fix/datatype.tbl" datatype.tbl
1717
#
1818
export COMIN="${RUN}.${PDY}${cyc}"
1919
if [[ ! -L ${COMIN} ]]; then
20-
ln -sf "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
20+
${NLN} "${COM_ATMOS_GEMPAK_1p00}" "${COMIN}"
2121
fi
2222

2323
mdl=gfs

0 commit comments

Comments
 (0)