Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a5f2d5a
update the new paths in the config.gaea under ci/platform
Jan 29, 2025
58bf134
Rename config.gaea to config.gaeac5
Jan 30, 2025
1e87ca7
Conflict resolved
Feb 18, 2025
78b7b1a
Merge branch 'develop' into develop
AnilKumar-NOAA Feb 18, 2025
35628e5
added updates to MACHINE_ID to Jenkins Node name map for EMC and EPIC…
Feb 22, 2025
96db5cc
updated logic for the MACHINE_ID to Jenkins node name map to accomoda…
Feb 22, 2025
7c8b117
adding update to single quote on body block that had updated before
Feb 22, 2025
7bc0d1b
turned HPSS arch off for C5
Feb 22, 2025
811a299
removed a no op
Feb 22, 2025
a48e26d
Merge branch 'NOAA-EMC:develop' into develop
AnilKumar-NOAA Mar 3, 2025
759aa71
Merge branch 'NOAA-EMC:develop' into develop
AnilKumar-NOAA Mar 3, 2025
b83795a
Merge branch 'NOAA-EMC:develop' into develop
AnilKumar-NOAA Mar 4, 2025
e3771d4
Updated gaea to gaeac5 in ci dir
Mar 4, 2025
64c3a56
Merge branch 'update_gaeac5_ci' into hotfix_jenkins_emc_nodename
AnilKumar-NOAA Mar 5, 2025
539e67c
Merge pull request #9 from TerrenceMcGuinness-NOAA/hotfix_jenkins_emc…
AnilKumar-NOAA Mar 5, 2025
e78f0da
Merge branch 'NOAA-EMC:develop' into update_gaeac5_ci
AnilKumar-NOAA Mar 5, 2025
ac5c914
Update Jenkinsfile
TerrenceMcGuinness-NOAA Mar 5, 2025
f5fbf15
Update Jenkinsfile
TerrenceMcGuinness-NOAA Mar 5, 2025
b74dec6
chainging account to epic on Gaea C5
TerrenceMcGuinness-NOAA Mar 5, 2025
a3521ed
Update Jenkinsfile
TerrenceMcGuinness-NOAA Mar 6, 2025
5e0982c
Update config.gaeac5
TerrenceMcGuinness-NOAA Mar 6, 2025
dec4c24
Merge branch 'develop' into update_gaeac5_ci_anil
TerrenceMcGuinness-NOAA Mar 6, 2025
369b7f0
added skip to non running cases on C5
Feb 22, 2025
d96082d
Merge branch 'develop' into update_gaeac5_ci_anil
TerrenceMcGuinness-NOAA Mar 10, 2025
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
28 changes: 17 additions & 11 deletions ci/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ def CUSTOM_WORKSPACE = 'none'
def HOMEgfs = 'none'
def CI_CASES = ''
def GH = 'none'
// Map of the machine names (MACHINE_ID) to the Jenkins Node names
def NodeName = [hera: 'Hera-EMC', orion: 'Orion-EMC', hercules: 'Hercules-EMC', gaeac5: 'GaeaC5', gaeac6: 'Gaeac6-EMC']
// Location of the custom workspaces for each machine in the CI system. They are persistent for each iteration of the PR.
def NodeName = [hera: 'Hera-EMC', orion: 'Orion-EMC', hercules: 'Hercules-EMC', gaea: 'Gaea', gaeac6: 'Gaeac6-EMC']
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/glopara/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/global/CI/HERCULES', gaea: '/gpfs/f5/epic/proj-shared/global/CI', gaeac6: '/gpfs/f6/drsa-precip3/proj-shared/global/CI']
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/glopara/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/global/CI/HERCULES', gaeac5: '/gpfs/f5/epic/proj-shared/global/CI', gaeac6: '/gpfs/f6/drsa-precip3/proj-shared/global/CI']
def repo_url = 'git@github.com:NOAA-EMC/global-workflow.git'
def STATUS = 'Passed'

Expand All @@ -22,7 +23,6 @@ pipeline {
stages { // This initial stage is used to get the Machine name from the GitHub labels on the PR
// which is used to designate the Nodes in the Jenkins Controller by the agent label
// Each Jenkins Node is connected to said machine via an JAVA agent via an ssh tunnel
// no op 2

stage('1. Get Machine') {
agent { label 'built-in' }
Expand All @@ -35,36 +35,41 @@ pipeline {
}

def run_nodes = []
def machine_names = []
if (isSpawnedFromAnotherJob) {
echo "machine being set to value passed to this spawned job"
echo "passed machine: ${params.machine}"
machine = params.machine
} else {
echo "This is parent job so getting list of nodes matching labels:"
for (label in pullRequest.labels) {
echo "label in pullReqest: ${label}"
if (label.matches("CI-(.*?)-Ready")) {
echo "Found Ready Label: ${label}"
def machine_name = label.split('-')[1].toString().toLowerCase()
jenkins.model.Jenkins.get().computers.each { c ->
if (c.node.selfLabel.name == NodeName[machine_name]) {
run_nodes.add(c.node.selfLabel.name)
machine_names.add(machine_name) // record machine name alongside node
}
}
}
}
// Spawning all the jobs on the nodes matching the labels
// Spawning jobs using both run_nodes and machine_names arrays
if (run_nodes.size() > 1) {
run_nodes.init().each { node ->
def machine_name = node.split('-')[0].toLowerCase()
for (int i = 0; i < run_nodes.size() - 1; i++) {
def node = run_nodes[i]
def machine_name = machine_names[i] // use the corresponding machine name
echo "Spawning job on node: ${node} with machine name: ${machine_name}"
build job: "/global-workflow/EMC-Global-Pipeline/PR-${env.CHANGE_ID}", parameters: [
string(name: 'machine', value: machine_name),
string(name: 'Node', value: node) ],
wait: false
string(name: 'Node', value: node)
], wait: false
}
machine = run_nodes.last().split('-')[0].toLowerCase()
machine = machine_names[run_nodes.size() - 1]
echo "Running parent job: ${machine}"
} else {
machine = run_nodes[0].split('-')[0].toLowerCase()
machine = machine_names[0]
echo "Running only the parent job: ${machine}"
Comment thread
DavidHuber-NOAA marked this conversation as resolved.
}
}
Expand All @@ -76,10 +81,11 @@ pipeline {
agent { label NodeName[machine].toLowerCase() }
steps {
script {
// Capitalize the first letter of the machine name and use if for labels
Comment thread
DavidHuber-NOAA marked this conversation as resolved.
Machine = machine[0].toUpperCase() + machine.substring(1)
Comment thread
DavidHuber-NOAA marked this conversation as resolved.
echo "Getting Common Workspace for ${Machine}"
ws("${custom_workspace[machine]}/${env.CHANGE_ID}") {
properties([parameters([[$class: 'NodeParameterDefinition', allowedSlaves: ['built-in', 'Hercules-EMC', 'Hera-EMC', 'Orion-EMC', 'Gaea', 'GaeaC6-EMC'], defaultSlaves: ['built-in'], name: '', nodeEligibility: [$class: 'AllNodeEligibility'], triggerIfResult: 'allCases']])])
properties([parameters([[$class: 'NodeParameterDefinition', allowedSlaves: ['built-in', 'Hercules-EMC', 'Hera-EMC', 'Orion-EMC', 'GaeaC5', 'GaeaC6-EMC'], defaultSlaves: ['built-in'], name: '', nodeEligibility: [$class: 'AllNodeEligibility'], triggerIfResult: 'allCases']])])
GH = sh(script: "which gh || echo '~/bin/gh'", returnStdout: true).trim()
CUSTOM_WORKSPACE = "${WORKSPACE}"
HOMEgfs = "${CUSTOM_WORKSPACE}/global-workflow"
Expand Down
4 changes: 2 additions & 2 deletions ci/Jenkinsfile4AWS
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ def HOMEgfs = 'none'
def CI_CASES = ''
def GH = 'none'
// Location of the custom workspaces for each machine in the CI system. They are persistent for each iteration of the PR.
def NodeName = [hera: 'Hera-EMC', orion: 'Orion-EMC', hercules: 'Hercules-EMC', gaea: 'Gaea', noaacloud: 'awsepicglobalworkflow']
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', noaacloud: '/lustre/jenkins']
def NodeName = [hera: 'Hera-EMC', orion: 'Orion-EMC', hercules: 'Hercules-EMC', gaeac5: 'gaeac5', noaacloud: 'awsepicglobalworkflow']
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/global/CI/HERCULES', gaeac5: '/gpfs/f5/epic/proj-shared/global/CI', noaacloud: '/lustre/jenkins']
def repo_url = 'git@github.com:NOAA-EMC/global-workflow.git'
def STATUS = 'Passed'

Expand Down
2 changes: 1 addition & 1 deletion ci/cases/pr/C48_S2SWA_gefs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ arguments:
yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_defaults_ci.yaml

skip_ci_on_hosts:
- None
- gaeac5
3 changes: 3 additions & 0 deletions ci/cases/pr/C96C48_hybatmDA.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ arguments:
interval: 24
start: cold
yaml: {{ HOMEgfs }}/ci/cases/yamls/gfs_defaults_ci.yaml

skip_ci_on_hosts:
- gaeac5
1 change: 1 addition & 0 deletions ci/cases/pr/C96_atm3DVar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ arguments:

skip_ci_on_hosts:
- wcoss2
- gaeac5
6 changes: 3 additions & 3 deletions ci/platforms/config.gaeac5
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/bash

export GFS_CI_ROOT=/gpfs/f5/epic/proj-shared/global/GFS_CI_ROOT
export ICSDIR_ROOT=/gpfs/f5/epic/proj-shared/global/glopara/data/ICSDIR
export HPC_ACCOUNT=ufs-ard
export GFS_CI_ROOT=/gpfs/f5/ufs-ard/world-shared/global/GFS_CI_ROOT
export ICSDIR_ROOT=/gpfs/f5/ufs-ard/world-shared/global/glopara/data/ICSDIR
export HPC_ACCOUNT=epic
export max_concurrent_cases=5
export max_concurrent_pr=4
2 changes: 1 addition & 1 deletion ci/scripts/check_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ REPO_URL=${REPO_URL:-"git@github.com:NOAA-EMC/global-workflow.git"}

source "${HOMEgfs}/ush/detect_machine.sh"
case ${MACHINE_ID} in
hera | orion | hercules | wcoss2 | gaea)
hera | orion | hercules | wcoss2 | gaeac5 | gaeac6)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}"
;;
Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/driver.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]'

source "${ROOT_DIR}/ush/detect_machine.sh"
case ${MACHINE_ID} in
hera | orion | hercules | wcoss2 | gaea)
hera | orion | hercules | wcoss2 | gaeac5 | gaeac6)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}"
;;
Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/driver_weekly.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export PS4='+ $(basename ${BASH_SOURCE[0]})[${LINENO}]'

source "${ROOT_DIR}/ush/detect_machine.sh"
case ${MACHINE_ID} in
hera | orion | hercules | wcoss2 | gaea)
hera | orion | hercules | wcoss2 | gaeac5 | gaeac6)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}"
;;
Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/run_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]'

source "${HOMEgfs}/ush/detect_machine.sh"
case ${MACHINE_ID} in
hera | orion | hercules | wcoss2 | gaea)
hera | orion | hercules | wcoss2 | gaeac5 | gaeac6)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}"
;;
Expand Down
3 changes: 2 additions & 1 deletion workflow/hosts/gaeac5.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ HOMEDIR: '/gpfs/f5/${ACCOUNT}/scratch/${USER}'
STMP: '/gpfs/f5/${ACCOUNT}/scratch/${USER}'
PTMP: '/gpfs/f5/${ACCOUNT}/scratch/${USER}'
NOSCRUB: $HOMEDIR
ACCOUNT: ufs-ard
ACCOUNT: epic
SCHEDULER: slurm
QUEUE: normal
QUEUE_SERVICE: normal
Expand All @@ -21,6 +21,7 @@ CLUSTERS: 'c5'
CLUSTERS_DTN: 'es'
CHGRP_RSTPROD: 'NO'
CHGRP_CMD: 'chgrp rstprod'
HPSSARCH: 'NO'
HPSS_PROJECT: emc-global
DO_ARCHCOM: 'NO'
ARCHCOM_TO: 'local'
Expand Down