diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile index 5069bb18be0..50c7503f3eb 100644 --- a/ci/Jenkinsfile +++ b/ci/Jenkinsfile @@ -6,7 +6,7 @@ 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', 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/role-global/GFS_CI_CD/HERCULES/CI', gaea: '/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' diff --git a/ci/platforms/config.gaeac6 b/ci/platforms/config.gaeac6 index bda69c6a98d..3fbdfc90240 100644 --- a/ci/platforms/config.gaeac6 +++ b/ci/platforms/config.gaeac6 @@ -1,18 +1,24 @@ #!/usr/bin/bash +# Main CI root directory export GFS_CI_ROOT=/ncrc/proj/nggps_emc/${USER}/GFS_CI_CD +# ICSDIR root directory used on the create_experment.py command line export ICSDIR_ROOT=/gpfs/f6/bil-fire8/world-shared/global/glopara/data/ICSDIR -# CI BASH test directories -export GFS_BASH_CI_ROOT=${GFS_CI_ROOT}/GFS_BASH_CI - -# Jenkins directories -export JENKINS_AGENT_LANUCH_DIR=${GFS_CI_ROOT}/Jenkins/agent +# JENKINS launch directory for agent +export JENKINS_AGENT_LAUNCH_DIR=${GFS_CI_ROOT}/Jenkins/agent +# JENKINS internal working directories for CI jobs (not for users use) export JENKINS_WORK_DIR=${GFS_CI_ROOT}/Jenkins/workspace +# NOTE: JENKINS custom_workspace directory where CI jobs are run +# /gpfs/f6/drsa-precip3/proj-shared/global/CI +# is defined in the Jenkinsfile # CTest functional test directories for pre stagged input data export STAGED_TESTS_DIR=${GFS_CI_ROOT}/STAGED_TESTS_DIR +# CI BASH test directories +export GFS_BASH_CI_ROOT=${GFS_CI_ROOT}/GFS_BASH_CI + export HPC_ACCOUNT=drsa-precip3 export max_concurrent_cases=5 export max_concurrent_pr=4 diff --git a/ci/platforms/config.hera b/ci/platforms/config.hera index cf0ca640e8a..04f1ba81e41 100644 --- a/ci/platforms/config.hera +++ b/ci/platforms/config.hera @@ -1,13 +1,17 @@ #!/usr/bin/bash +# Main CI root directory export GFS_CI_ROOT=/scratch1/NCEPDEV/global/glopara/GFS_CI_CD +# ICSDIR root directory used on the create_experment.py command line export ICSDIR_ROOT=/scratch1/NCEPDEV/global/glopara/data/ICSDIR -# Jenkins directories -export JENKINS_AGENT_LANUCH_DIR=${GFS_CI_ROOT}/Jenkins/agent +# JENKINS launch directory for agent +export JENKINS_AGENT_LAUNCH_DIR=${GFS_CI_ROOT}/Jenkins/agent +# JENKINS internal working directories for CI jobs (not for users use) export JENKINS_WORK_DIR=${GFS_CI_ROOT}/Jenkins/workspace # JENKINS custom_workspace directory where CI jobs are run # /scratch1/NCEPDEV/global/glopara/CI +# is defined in the Jenkinsfile # CTest functional test directories for pre stagged input data export STAGED_TESTS_DIR=${GFS_CI_ROOT}/STAGED_TESTS_DIR @@ -15,6 +19,7 @@ export STAGED_TESTS_DIR=${GFS_CI_ROOT}/STAGED_TESTS_DIR # CI BASH test directories export GFS_BASH_CI_ROOT=${GFS_CI_ROOT}/GFS_BASH_CI +# HPC account which overides the default account export HPC_ACCOUNT=fv3-cpu export max_concurrent_cases=5 export max_concurrent_pr=4 diff --git a/ci/platforms/config.hercules b/ci/platforms/config.hercules index 4e729d3afba..afd388d6f52 100644 --- a/ci/platforms/config.hercules +++ b/ci/platforms/config.hercules @@ -1,11 +1,17 @@ #!/usr/bin/bash -export GFS_CI_ROOT=/work2/noaa/stmp/GFS_CI_ROOT/HERCULES +# Main CI root directory +export GFS_CI_ROOT=/work2/noaa/global/${USER}/GFS_CI_CD/HERCULES +# ICSDIR root directory used on the create_experment.py command line export ICSDIR_ROOT=/work/noaa/global/glopara/data/ICSDIR -# Jenkins directories -export JENKINS_AGENT_LANUCH_DIR=/home/role-nems/GFS_CI_ROOT_JENKINS/AGENT_mterry -export JENKINS_WORK_DIR=/home/role-nems/GFS_CI_ROOT_JENKINS +# JENKINS launch directory for agent +export JENKINS_AGENT_LAUNCH_DIR=${GFS_CI_ROOT}/Jenkins/agent +# JENKINS internal working directories for CI jobs (not for users use) +export JENKINS_WORK_DIR=${GFS_CI_ROOT}/Jenkins/workspace +# NOTE: JENKINS custom_workspace directory where CI jobs are run +# /work2/noaa/global/role-global/GFS_CI_CD/HERCULES/CI +# is defined in the Jenkinsfile # CTest functional test directories for pre stagged input data export STAGED_TESTS_DIR=${GFS_CI_ROOT}/STAGED_TESTS_DIR @@ -13,6 +19,7 @@ export STAGED_TESTS_DIR=${GFS_CI_ROOT}/STAGED_TESTS_DIR # CI BASH test directories export GFS_BASH_CI_ROOT=${GFS_CI_ROOT}/GFS_BASH_CI +# HPC account which overides the default account export HPC_ACCOUNT=fv3-cpu export max_concurrent_cases=5 export max_concurrent_pr=4 diff --git a/ci/platforms/config.orion b/ci/platforms/config.orion index 04c8d1c08c6..880546908e6 100644 --- a/ci/platforms/config.orion +++ b/ci/platforms/config.orion @@ -4,7 +4,7 @@ export GFS_CI_ROOT=/work2/noaa/stmp/GFS_CI_ROOT/ORION export ICSDIR_ROOT=/work/noaa/global/glopara/data/ICSDIR # Jenkins directories -export JENKINS_AGENT_LANUCH_DIR=/home/role-nems/GFS_CI_ROOT_JENKINS/AGENT_mterry +export JENKINS_AGENT_LAUNCH_DIR=/home/role-nems/GFS_CI_ROOT_JENKINS/AGENT_mterry export JENKINS_WORK_DIR=/home/role-nems/GFS_CI_ROOT_JENKINS # CI BASH test directories diff --git a/ci/scripts/utils/launch_java_agent.sh b/ci/scripts/utils/launch_java_agent.sh index 003695d9d81..a4da13b227f 100755 --- a/ci/scripts/utils/launch_java_agent.sh +++ b/ci/scripts/utils/launch_java_agent.sh @@ -81,7 +81,7 @@ case ${MACHINE_ID} in exit 1;; esac -LOG=lanuched_agent-$(date +%Y%m%d%M).log +LOG=launched_agent-$(date +%Y%m%d%M).log rm -f "${LOG}" HOMEgfs="${HOMEGFS_}" source "${HOMEGFS_}/ush/module-setup.sh" @@ -89,7 +89,7 @@ module use "${HOMEGFS_}/modulefiles" module load "module_gwsetup.${MACHINE_ID}" source "${HOMEGFS_}/ci/platforms/config.${MACHINE_ID}" -JAVA_HOME="${JENKINS_AGENT_LANUCH_DIR}/JAVA/jdk-17.0.10" +JAVA_HOME="${JENKINS_AGENT_LAUNCH_DIR}/JAVA/jdk-17.0.10" if [[ ! -d "${JAVA_HOME}" ]]; then JAVA_HOME=/usr/lib/jvm/jre-17 if [[ ! -d "${JAVA_HOME}" ]]; then @@ -117,13 +117,13 @@ if [[ "${check_token}" != *"*****"* ]]; then fi echo "gh authenticating with emcbot TOKEN ok" -if [[ -d "${JENKINS_AGENT_LANUCH_DIR}" ]]; then - echo "Jenkins Agent Lanuch Directory: ${JENKINS_AGENT_LANUCH_DIR}" +if [[ -d "${JENKINS_AGENT_LAUNCH_DIR}" ]]; then + echo "Jenkins Agent Launch Directory: ${JENKINS_AGENT_LAUNCH_DIR}" else - echo "ERROR: Jenkins Agent Lanuch Directory not found. Exiting with error." + echo "ERROR: Jenkins Agent Launch Directory not found. Exiting with error." exit 1 fi -cd "${JENKINS_AGENT_LANUCH_DIR}" +cd "${JENKINS_AGENT_LAUNCH_DIR}" echo "Entered directory ${PWD}" if ! [[ -f agent.jar ]]; then @@ -163,7 +163,7 @@ check_node_online() { } lauch_agent () { - echo "Launching Jenkins Agent on ${host}" + echo "Launching Jenkins Agent on ${host} using internal workspace ${JENKINS_WORK_DIR}" command="nohup ${JAVA} -jar agent.jar -jnlpUrl ${controller_url}/computer/${MACHINE_ID^}-EMC/jenkins-agent.jnlp -secret @jenkins-secret-file -workDir ${JENKINS_WORK_DIR}" echo -e "Launching Jenkins Agent on ${host} with the command:\n${command}" >& "${LOG}" ${command} >> "${LOG}" 2>&1 & diff --git a/workflow/hosts/hercules.yaml b/workflow/hosts/hercules.yaml index 9000cf7c6cb..1320509e530 100644 --- a/workflow/hosts/hercules.yaml +++ b/workflow/hosts/hercules.yaml @@ -4,9 +4,9 @@ BASE_DATA: '/work/noaa/global/glopara/data' BASE_IC: '/work/noaa/global/glopara/data/ICSDIR' PACKAGEROOT: '/work/noaa/global/glopara/nwpara' COMINsyn: '/work/noaa/global/glopara/com/gfs/prod/syndat' -HOMEDIR: '/work/noaa/global/${USER}' -STMP: '/work/noaa/stmp/${USER}/HERCULES' -PTMP: '/work/noaa/stmp/${USER}/HERCULES' +HOMEDIR: '/work2/noaa/global/${USER}/HERCULES' +STMP: '/work2/noaa/global/${USER}/HERCULES' +PTMP: '/work2/noaa/global/${USER}/HERCULES' NOSCRUB: $HOMEDIR SCHEDULER: slurm ACCOUNT: fv3-cpu