Skip to content

Commit 51ecf63

Browse files
authored
Merge branch 'NOAA-EMC:develop' into feature/GW-RT_GlobalNML
2 parents f379c15 + b56f633 commit 51ecf63

Some content is hidden

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

48 files changed

+861
-215
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,3 +208,6 @@ ush/python/pygfs/ufswm/gfs.py @aerorahul
208208
ush/python/pygfs/ufswm/ufs.py @aerorahul
209209
ush/python/pygfs/utils/__init__.py @aerorahul
210210
ush/python/pygfs/utils/marine_da_utils.py @guillaumevernieres @AndrewEichmann-NOAA
211+
212+
# Specific workflow scripts
213+
workflow/generate_workflows.sh @DavidHuber-NOAA

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,5 @@ Example:
7272
- [ ] My changes generate no new warnings
7373
- [ ] New and existing tests pass with my changes
7474
- [ ] This change is covered by an existing CI test or a new one has been added
75+
- [ ] Any new scripts have been added to the .github/CODEOWNERS file with owners
7576
- [ ] I have made corresponding changes to the system documentation if necessary

ci/Jenkinsfile

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def cases = ''
55
def GH = 'none'
66
// Location of the custom workspaces for each machine in the CI system. They are persitent for each iteration of the PR.
77
def NodeName = [hera: 'Hera-EMC', orion: 'Orion-EMC', hercules: 'Hercules-EMC', gaea: 'Gaea']
8-
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/stmp/CI/HERCULES', gaea: '/gpfs/f5/epic/proj-shared/global/CI']
8+
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/global/CI/HERCULES', gaea: '/gpfs/f5/epic/proj-shared/global/CI']
99
def repo_url = 'git@github.com:NOAA-EMC/global-workflow.git'
1010
def STATUS = 'Passed'
1111

@@ -101,9 +101,10 @@ pipeline {
101101
stages {
102102
stage('Building') {
103103
steps {
104-
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
104+
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
105105
script {
106106
def HOMEgfs = "${CUSTOM_WORKSPACE}/${system}" // local HOMEgfs is used to build the system on per system basis under the custome workspace for each buile system
107+
env.HOME_GFS = HOMEgfs // setting path in HOMEgfs as an environment variable HOME_GFS for some systems that using the path in its .bashrc
107108
sh(script: "mkdir -p ${HOMEgfs}")
108109
ws(HOMEgfs) {
109110
if (fileExists("${HOMEgfs}/sorc/BUILT_semaphor")) { // if the system is already built, skip the build in the case of re-runs
@@ -172,9 +173,10 @@ pipeline {
172173
}
173174
if (system == 'gfs') {
174175
cases = sh(script: "${HOMEgfs}/ci/scripts/utils/get_host_case_list.py ${machine}", returnStdout: true).trim().split()
176+
echo "Cases to run: ${cases}"
175177
}
176178
}
177-
}
179+
}
178180
}
179181
}
180182
}
@@ -192,32 +194,34 @@ pipeline {
192194
def parallelStages = cases.collectEntries { caseName ->
193195
["${caseName}": {
194196
stage("Create ${caseName}") {
195-
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
196-
script {
197-
sh(script: "sed -n '/{.*}/!p' ${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml > ${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml.tmp")
198-
def yaml_case = readYaml file: "${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml.tmp"
199-
system = yaml_case.experiment.system
200-
def HOMEgfs = "${CUSTOM_WORKSPACE}/${system}" // local HOMEgfs is used to populate the XML on per system basis
201-
env.RUNTESTS = "${CUSTOM_WORKSPACE}/RUNTESTS"
202-
try {
203-
error_output = sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh create_experiment ${HOMEgfs}/ci/cases/pr/${caseName}.yaml", returnStdout: true).trim()
204-
} catch (Exception error_create) {
205-
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "${Case} **FAILED** to create experment on ${Machine} in BUILD# ${env.BUILD_NUMBER}\n with the error:\n\\`\\`\\`\n${error_output}\\`\\`\\`" """)
206-
error("Case ${caseName} failed to create experment directory")
207-
}
197+
script {
198+
sh(script: "sed -n '/{.*}/!p' ${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml > ${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml.tmp")
199+
def yaml_case = readYaml file: "${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml.tmp"
200+
def build_system = yaml_case.experiment.system
201+
def HOMEgfs = "${CUSTOM_WORKSPACE}/${build_system}" // local HOMEgfs is used to populate the XML on per system basis
202+
env.HOME_GFS = HOMEgfs // setting path in HOMEgfs as an environment variable HOME_GFS for some systems that using the path in its .bashrc
203+
env.RUNTESTS = "${CUSTOM_WORKSPACE}/RUNTESTS"
204+
try {
205+
error_output = sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh create_experiment ${HOMEgfs}/ci/cases/pr/${caseName}.yaml", returnStdout: true).trim()
206+
} catch (Exception error_create) {
207+
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "${Case} **FAILED** to create experment on ${Machine} in BUILD# ${env.BUILD_NUMBER}\n with the error:\n\\`\\`\\`\n${error_output}\\`\\`\\`" """)
208+
error("Case ${caseName} failed to create experment directory")
208209
}
209-
}
210+
}
210211
}
211212

212213
stage("Running ${caseName}") {
213214
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
214215
script {
215216
HOMEgfs = "${CUSTOM_WORKSPACE}/gfs" // common HOMEgfs is used to launch the scripts that run the experiments
217+
env.HOME_GFS = HOMEgfs // setting path in HOMEgfs as an environment variable HOME_GFS for some systems that using the path in its .bashrc
216218
def pslot = sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh get_pslot ${CUSTOM_WORKSPACE}/RUNTESTS ${caseName}", returnStdout: true).trim()
217219
def error_file = "${CUSTOM_WORKSPACE}/RUNTESTS/${pslot}_error.logs"
218220
sh(script: " rm -f ${error_file}")
221+
def yaml_case = readYaml file: "${CUSTOM_WORKSPACE}/gfs/ci/cases/pr/${caseName}.yaml.tmp"
222+
def build_system = yaml_case.experiment.system
219223
try {
220-
sh(script: "${HOMEgfs}/ci/scripts/run-check_ci.sh ${CUSTOM_WORKSPACE} ${pslot} ${system}")
224+
sh(script: "${HOMEgfs}/ci/scripts/run-check_ci.sh ${CUSTOM_WORKSPACE} ${pslot} ${build_system}")
221225
} catch (Exception error_experment) {
222226
sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh cancel_batch_jobs ${pslot}")
223227
ws(CUSTOM_WORKSPACE) {
@@ -268,11 +272,11 @@ pipeline {
268272
}
269273
}
270274

271-
272275
stage( '5. FINALIZE' ) {
273276
agent { label NodeName[machine].toLowerCase() }
274277
steps {
275278
script {
279+
env.HOME_GFS = "${CUSTOM_WORKSPACE}/gfs" // setting path to HOMEgfs as an environment variable HOME_GFS for some systems that using the path in its .bashrc
276280
sh(script: """
277281
labels=\$(${GH} pr view ${env.CHANGE_ID} --repo ${repo_url} --json labels --jq '.labels[].name')
278282
for label in \$labels; do

ci/cases/gfsv17/C384mx025_3DVarAOWCDA.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ arguments:
88
resdetatmos: 384
99
resdetocean: 0.25
1010
nens: 0
11-
gfs_cyc: 4
11+
interval: 6
1212
start: cold
1313
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
1414
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR

ci/cases/pr/C48_S2SWA_gefs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ arguments:
99
resdetocean: 5.0
1010
resensatmos: 48
1111
nens: 2
12-
gfs_cyc: 1
12+
interval: 24
1313
start: cold
1414
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
1515
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR

ci/cases/pr/C48mx500_3DVarAOWCDA.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ arguments:
1313
idate: 2021032412
1414
edate: 2021032418
1515
nens: 0
16-
gfs_cyc: 0
16+
interval: 0
1717
start: warm
1818
yaml: {{ HOMEgfs }}/ci/cases/yamls/soca_gfs_defaults_ci.yaml
1919

ci/cases/pr/C96C48_hybatmDA.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ arguments:
1414
idate: 2021122018
1515
edate: 2021122106
1616
nens: 2
17-
gfs_cyc: 1
17+
interval: 24
1818
start: cold
1919
yaml: {{ HOMEgfs }}/ci/cases/yamls/gfs_defaults_ci.yaml

ci/cases/pr/C96C48_hybatmaerosnowDA.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ arguments:
1313
idate: 2021122012
1414
edate: 2021122100
1515
nens: 2
16-
gfs_cyc: 1
16+
interval: 24
1717
start: cold
1818
yaml: {{ HOMEgfs }}/ci/cases/yamls/atmaerosnowDA_defaults_ci.yaml
1919

2020
skip_ci_on_hosts:
21+
- wcoss2
2122
- orion
2223
- gaea
2324
- hercules

ci/cases/pr/C96C48_ufs_hybatmDA.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ arguments:
1313
idate: 2024022318
1414
edate: 2024022406
1515
nens: 2
16-
gfs_cyc: 1
16+
interval: 24
1717
start: warm
1818
yaml: {{ HOMEgfs }}/ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml
1919

ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ arguments:
99
resdetocean: 1.0
1010
resensatmos: 96
1111
nens: 2
12-
gfs_cyc: 1
12+
interval: 6
1313
start: warm
1414
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
1515
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
1616
idate: 2020110100
1717
edate: 2020110100
1818
yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_replay_ci.yaml
1919
icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96mx100/20240610
20+
21+
skip_ci_on_hosts:
22+
- wcoss2

0 commit comments

Comments
 (0)