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

Ci bash wcoss2 #272

Closed
wants to merge 25 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
423e400
added wcoss2 bash ci config file for platform
Apr 10, 2024
d1a543f
updated already defaulted ACCOUNT still miss-named SLURM though
Apr 10, 2024
659d748
added wcoss2 for checking if system is supported in the driver ci scr…
Apr 10, 2024
f989ea8
update gh assignment in check too because WCOSS2 uses a module load
Apr 10, 2024
c78f7b1
upated GH assignment and REPO_URL from env if needed over ride
Apr 10, 2024
1960268
updated slurm util calls to bash in the drivers for bash ci
Apr 11, 2024
2a6363f
branch 'ci_bash_wcoss2' of github.com:TerrenceMcGuinness-NOAA/global…
Apr 11, 2024
f536a88
Merge branch 'NOAA-EMC:develop' into ci_bash_wcoss2
TerrenceMcGuinness-NOAA Apr 12, 2024
7b1cc6d
Merge branch 'NOAA-EMC:develop' into ci_bash_wcoss2
TerrenceMcGuinness-NOAA Apr 15, 2024
960a161
added ci runtime module file for wcoss2
Apr 15, 2024
695b8f0
Merge branch 'ci_bash_wcoss2' of github.com:TerrenceMcGuinness-NOAA/g…
Apr 15, 2024
07294e4
fixed path in ci modulefile for wcoss2
Apr 15, 2024
049149b
update GH assignment for WCOSS2 updates
Apr 15, 2024
0e1abe7
fixed shellnorms including GH export
Apr 15, 2024
bfc37c2
replace with with command -v for gh
Apr 15, 2024
3566d66
check_ci.sh had an extra done in the wrong place
Apr 15, 2024
6dfc133
updated gh assignment for shellnorms again
Apr 15, 2024
95b4399
update shellnorms recomondation for testig agains ?$
Apr 15, 2024
a01c1e8
copilot consulted and was succent this was best way to comply to shel…
Apr 15, 2024
aa7d8f9
need to load the ci runtime module file for wcoss2 to git gh in check…
Apr 15, 2024
f5322e1
was not intended to unset HOMEgfs in the check script
Apr 15, 2024
afa6205
misspelled scheduler varible when checkout for torque in bash utils
Apr 15, 2024
82db788
removed gefs case for this PR as it is for bash
Apr 15, 2024
ea3d495
miss indeented skipp on wcoss2
Apr 15, 2024
07c24e0
Merge branch 'NOAA-EMC:develop' into ci_bash_wcoss2
TerrenceMcGuinness-NOAA Apr 15, 2024
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: 2 additions & 0 deletions ci/cases/pr/C48_S2SWA_gefs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ arguments:
edate: 2021032312
yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_defaults.yaml

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

export GFS_CI_ROOT=/lfs/h2/emc/global/noscrub/globalworkflow.ci/GFS_CI_ROOT
export ICSDIR_ROOT=/lfs/h2/emc/global/noscrub/emc.global/data/ICSDIR
export STMP="/lfs/h2/emc/stmp/${USER}"
export SLURM_ACCOUNT=GFS-DEV
export max_concurrent_cases=5
export max_concurrent_pr=4
21 changes: 14 additions & 7 deletions ci/scripts/check_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,15 @@ scriptname=$(basename "${BASH_SOURCE[0]}")
echo "Begin ${scriptname} at $(date -u)" || true
export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]'

GH=${HOME}/bin/gh
REPO_URL="https://github.com/NOAA-EMC/global-workflow.git"
REPO_URL=${REPO_URL:-"[email protected]:NOAA-EMC/global-workflow.git"}

#########################################################################
# Set up runtime environment varibles for accounts on supproted machines
#########################################################################

source "${HOMEgfs}/ush/detect_machine.sh"
case ${MACHINE_ID} in
hera | orion | hercules)
hera | orion | hercules | wcoss2)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}"
;;
Expand All @@ -38,7 +37,18 @@ source "${HOMEgfs}/ci/scripts/utils/ci_utils.sh"
module use "${HOMEgfs}/modulefiles"
module load "module_gwsetup.${MACHINE_ID}"
module list
# Load machine specific modules for ci (only wcoss2 is current)
if [[ "${MACHINE_ID}" == "wcoss2" ]]; then
module load "module_gwci.${MACHINE_ID}"
fi
set -x
if ! command -v gh > /dev/null; then
GH="${HOME}/bin/gh"
else
GH=$(command -v gh)
fi
export GH

rocotostat=$(command -v rocotostat)
if [[ -z ${rocotostat+x} ]]; then
echo "rocotostat not found on system"
Expand Down Expand Up @@ -141,10 +151,7 @@ for pr in ${pr_list}; do
sed -i "1 i\`\`\`" "${output_ci}"
"${GH}" pr comment "${pr}" --repo "${REPO_URL}" --body-file "${output_ci}"
"${HOMEgfs}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}"
for kill_cases in "${pr_dir}/RUNTESTS/"*; do
pslot=$(basename "${kill_cases}")
cancel_slurm_jobs "${pslot}"
done
cancel_all_batch_jobs "${pr_dir}/RUNTESTS/"
break
fi
if [[ "${num_done}" -eq "${num_cycles}" ]]; then
Expand Down
20 changes: 13 additions & 7 deletions ci/scripts/driver.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@ set -eux
# It then is ready to run a suite of regression tests with various configurations
#######################################################################################

#################################################################
# TODO using static build for GitHub CLI until fixed in HPC-Stack
#################################################################
export GH=${HOME}/bin/gh
export REPO_URL=${REPO_URL:-"https://github.com/NOAA-EMC/global-workflow.git"}
export REPO_URL=${REPO_URL:-"[email protected]:NOAA-EMC/global-workflow.git"}

################################################################
# Setup the reletive paths to scripts and PS4 for better logging
Expand All @@ -34,7 +30,7 @@ export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]'

source "${ROOT_DIR}/ush/detect_machine.sh"
case ${MACHINE_ID} in
hera | orion | hercules)
hera | orion | hercules | wcoss2)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}"
;;
Expand All @@ -54,8 +50,18 @@ source "${ROOT_DIR}/ci/scripts/utils/ci_utils.sh"
source "${ROOT_DIR}/ush/module-setup.sh"
module use "${ROOT_DIR}/modulefiles"
module load "module_gwsetup.${MACHINE_ID}"
# Load machine specific modules for ci (only wcoss2 is current)
if [[ "${MACHINE_ID}" == "wcoss2" ]]; then
module load "module_gwci.${MACHINE_ID}"
fi
set -x
unset HOMEgfs
if ! command -v gh > /dev/null; then
GH="${HOME}/bin/gh"
else
GH=$(command -v gh)
fi
export GH

############################################################
# query repo and get list of open PRs with tags {machine}-CI
Expand Down Expand Up @@ -113,7 +119,7 @@ for pr in ${pr_list}; do
else
for case in ${experiments}; do
case_name=$(basename "${case}")
cancel_slurm_jobs "${case_name}"
cancel_batch_jobs "${case_name}"
{
echo "Canceled all jobs for experiment ${case_name} in PR:${pr} on ${MACHINE_ID^}"
} >> "${output_ci_single}"
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)
hera | orion | hercules | wcoss2)
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)
hera | orion | hercules | wcoss2)
echo "Running Automated Testing on ${MACHINE_ID}"
source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}"
;;
Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/utils/ci_utils.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ function cancel_batch_jobs() {

scheduler=$(determine_scheduler)

if [[ "${schduler}" == "torque" ]]; then
if [[ "${scheduler}" == "torque" ]]; then
job_ids=$(qstat -u "${USER}" | awk '{print $1}') || true

for job_id in ${job_ids}; do
Expand Down
8 changes: 8 additions & 0 deletions modulefiles/module_gwci.wcoss2.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
help([[
Load environment to run GFS workflow ci scripts on WCOSS2
]])

prepend_path("MODULEPATH", "/apps/ops/para/nco/modulefiles/core")
load(pathJoin("gh","2.28.0"))

whatis("Description: GFS run setup ci environment")
Loading