Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
9aa3cc8
trying status of CI as a workflow action
TerrenceMcGuinness-NOAA Oct 18, 2023
92f2306
added PR number as input
TerrenceMcGuinness-NOAA Oct 18, 2023
8c4b2f0
Update orion_status.yaml
TerrenceMcGuinness-NOAA Oct 18, 2023
74aa734
take out PR on on
TerrenceMcGuinness-NOAA Oct 18, 2023
dcffb3c
take out PR on on
TerrenceMcGuinness-NOAA Oct 18, 2023
9b8d071
take out PR on on do loops
TerrenceMcGuinness-NOAA Oct 18, 2023
de4fd80
take out PR on on do loops syntax until
TerrenceMcGuinness-NOAA Oct 18, 2023
3623231
take out PR on on do loops syntax until singleton
TerrenceMcGuinness-NOAA Oct 18, 2023
218a084
take out PR on on do loops syntax until set faulse
TerrenceMcGuinness-NOAA Oct 18, 2023
83d5c79
take out PR on on do loops syntax until direct
TerrenceMcGuinness-NOAA Oct 18, 2023
de55f1a
take out PR on on do loops needed noop
TerrenceMcGuinness-NOAA Oct 18, 2023
5b3e6cc
take out PR jobs with no steps
TerrenceMcGuinness-NOAA Oct 18, 2023
022dd28
take out PR jobs need steps
TerrenceMcGuinness-NOAA Oct 18, 2023
c9c8ae2
take out PR jobs need steps
TerrenceMcGuinness-NOAA Oct 18, 2023
74a5b5a
added reusable workflow for getting lables for each job
TerrenceMcGuinness-NOAA Oct 19, 2023
9e306ef
fixed uses path
TerrenceMcGuinness-NOAA Oct 19, 2023
1430ab3
added dependances for main jobs and name in getlabels
TerrenceMcGuinness-NOAA Oct 19, 2023
56b0734
change order in needs
TerrenceMcGuinness-NOAA Oct 19, 2023
863f0f5
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Oct 20, 2023
7e14adb
took out poll
TerrenceMcGuinness-NOAA Oct 21, 2023
0615fad
took out secrets required line
TerrenceMcGuinness-NOAA Oct 21, 2023
a9145c7
took out secrets required line
TerrenceMcGuinness-NOAA Oct 21, 2023
9b8d608
added {{}} on inputs.pr_number
TerrenceMcGuinness-NOAA Oct 21, 2023
ac1b51c
fixed other pr_number assiginments
TerrenceMcGuinness-NOAA Oct 21, 2023
404a454
EOF error working
TerrenceMcGuinness-NOAA Oct 21, 2023
381832a
EOF error working II
TerrenceMcGuinness-NOAA Oct 21, 2023
3f6bd46
ambiguous redrirect to GITHUB_OUTPUT
TerrenceMcGuinness-NOAA Oct 21, 2023
ab5d110
tryig to get needs output from get_Ready
TerrenceMcGuinness-NOAA Oct 21, 2023
35c4877
still not getting outputs
TerrenceMcGuinness-NOAA Oct 21, 2023
725e525
quotes on GITHUB_OUTPUT
TerrenceMcGuinness-NOAA Oct 21, 2023
461297d
trying crazy Sys IO
TerrenceMcGuinness-NOAA Oct 21, 2023
9bdf6f5
addeing yml file
TerrenceMcGuinness-NOAA Oct 21, 2023
3e7a559
remove yml file
TerrenceMcGuinness-NOAA Oct 21, 2023
b656614
added () on DONE
TerrenceMcGuinness-NOAA Oct 21, 2023
ed3429e
adding env back to GITHUB_OUPUT
TerrenceMcGuinness-NOAA Oct 21, 2023
00e92e2
added read write permissions to reuse
TerrenceMcGuinness-NOAA Oct 21, 2023
7cda450
fixed logic in status workflow for on set
TerrenceMcGuinness-NOAA Oct 21, 2023
522e4e3
noop on getlables
TerrenceMcGuinness-NOAA Oct 21, 2023
752210c
issue with orion status
TerrenceMcGuinness-NOAA Oct 21, 2023
56b6a5f
misspelled yaml as yml
TerrenceMcGuinness-NOAA Oct 21, 2023
5449a99
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Oct 24, 2023
02429e6
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Oct 30, 2023
aaf47f4
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Dec 5, 2023
c050fc0
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Dec 7, 2023
028259b
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Dec 11, 2023
49fc531
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Dec 12, 2023
dd16ba5
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Dec 14, 2023
205886a
Merge branch 'NOAA-EMC:develop' into workflow_actions
TerrenceMcGuinness-NOAA Dec 15, 2023
f176746
no op for self test
Dec 15, 2023
3cff605
no op for self test
Dec 15, 2023
7e33d8e
Merge branch 'NOAA-EMC:develop' into develop
TerrenceMcGuinness-NOAA Dec 19, 2023
0540f77
Merge branch 'NOAA-EMC:develop' into develop
TerrenceMcGuinness-NOAA Dec 20, 2023
949b6cf
Merge branch 'NOAA-EMC:develop' into develop
TerrenceMcGuinness-NOAA Dec 27, 2023
dfe27d4
Merge branch 'NOAA-EMC:develop' into develop
TerrenceMcGuinness-NOAA Jan 2, 2024
2bb767f
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Jan 10, 2024
ef9a13f
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Feb 29, 2024
18def2f
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Mar 7, 2024
9dd58a1
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Mar 8, 2024
e4035e2
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Mar 11, 2024
cef7250
adde pygithug into pr_list_database
TerrenceMcGuinness-NOAA Mar 11, 2024
214dd42
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 12, 2024
429c904
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Mar 12, 2024
44f3f46
remove extra gitworkfow work stuck in my forked develop branch
TerrenceMcGuinness-NOAA Mar 12, 2024
8729330
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 13, 2024
1ca915c
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 13, 2024
19048fc
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 14, 2024
1420f69
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 18, 2024
4bcd384
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 20, 2024
600bc12
Merge branch 'NOAA-EMC:develop' into develop
TerrenceMcGuinness-NOAA Mar 21, 2024
f3a1c09
Merge branch 'develop' of https://github.com/TerrenceMcGuinness-NOAA/…
TerrenceMcGuinness-NOAA Mar 22, 2024
38ff559
updating devlop to match authoritative repo
TerrenceMcGuinness-NOAA Mar 22, 2024
c966eb6
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Mar 28, 2024
c130382
added new feature of pr_list_database for getting pr list and added r…
TerrenceMcGuinness-NOAA Apr 1, 2024
0f596f1
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Apr 1, 2024
8f346da
missed some updates from previouse review on pr list database script
TerrenceMcGuinness-NOAA Apr 1, 2024
9589945
a few pynorms spaces
TerrenceMcGuinness-NOAA Apr 1, 2024
6e5e998
extra spaces
TerrenceMcGuinness-NOAA Apr 1, 2024
0f1f8fd
shell norms and spaces
TerrenceMcGuinness-NOAA Apr 1, 2024
1d42f81
shell norm using ==
TerrenceMcGuinness-NOAA Apr 1, 2024
0d7cde9
fixed date sring
TerrenceMcGuinness-NOAA Apr 1, 2024
e0d22e5
create_table is not the argumnet
TerrenceMcGuinness-NOAA Apr 1, 2024
5d3353e
missed utils in path to pr_list_database script
TerrenceMcGuinness-NOAA Apr 1, 2024
343e3c7
fixed quote in dictionary for rocoto stat
TerrenceMcGuinness-NOAA Apr 1, 2024
9da1373
Finished debugging check_ci with python rocoto checker
TerrenceMcGuinness-NOAA Apr 2, 2024
2c2b52b
Merge branch 'NOAA-EMC:develop' into feature/check_stalled_cases
TerrenceMcGuinness-NOAA Apr 2, 2024
b0879df
added the verbose switch in the python rocotostat count script
TerrenceMcGuinness-NOAA Apr 2, 2024
443dd87
fixed driver from failing if the build PID that is in the database no…
TerrenceMcGuinness-NOAA Apr 2, 2024
4f9e5a5
Merge branch 'develop' of github.com:TerrenceMcGuinness-NOAA/global-w…
TerrenceMcGuinness-NOAA Apr 3, 2024
5a6887f
added a bash wrapper to publish_logs so that it can take a file with …
TerrenceMcGuinness-NOAA Apr 3, 2024
4ccfa91
Merge branch 'feature/check_stalled_cases' of github.com:TerrenceMcGu…
TerrenceMcGuinness-NOAA Apr 3, 2024
c20c61b
Merge branch 'develop' into feature/check_stalled_cases
TerrenceMcGuinness-NOAA Apr 3, 2024
cbc83ac
Merge branch 'feature/check_stalled_cases' of github.com:TerrenceMcGu…
TerrenceMcGuinness-NOAA Apr 3, 2024
36210b5
add wrapper for publishing error logs from a file and pre path
TerrenceMcGuinness-NOAA Apr 3, 2024
359c65e
used utils bash wrapper to publish list of error logs from the build …
TerrenceMcGuinness-NOAA Apr 3, 2024
96abb93
bash norms quotes
TerrenceMcGuinness-NOAA Apr 3, 2024
b5a6ca8
more bash norms quotes
TerrenceMcGuinness-NOAA Apr 3, 2024
9035903
updated file type to input argument
TerrenceMcGuinness-NOAA Apr 3, 2024
617ec38
updated file type name
TerrenceMcGuinness-NOAA Apr 3, 2024
916892a
fixed name of arg to files in rocoto stat
TerrenceMcGuinness-NOAA Apr 3, 2024
7c86ea9
fixed args and extra space on verbose output
TerrenceMcGuinness-NOAA Apr 3, 2024
d3e657d
removed verspose and quotes to args for check rocoto state
TerrenceMcGuinness-NOAA Apr 3, 2024
bd70388
fixed shellnorms on quotes for rocoto stat
TerrenceMcGuinness-NOAA Apr 3, 2024
f822c8e
pycodestyle spaces
TerrenceMcGuinness-NOAA Apr 3, 2024
0044499
pycodestyle white space
TerrenceMcGuinness-NOAA Apr 3, 2024
eb470bb
added -k argument to build_all.sh in clone-build for CI to capture er…
TerrenceMcGuinness-NOAA Apr 3, 2024
8426157
Merge branch 'feature/check_stalled_cases' of github.com:TerrenceMcGu…
TerrenceMcGuinness-NOAA Apr 3, 2024
badd763
SC2312 is false negative for kill commands
TerrenceMcGuinness-NOAA Apr 3, 2024
448f9c7
fixed needed quotes for shellchecks
TerrenceMcGuinness-NOAA Apr 3, 2024
d08a43d
SC override issues
TerrenceMcGuinness-NOAA Apr 3, 2024
808b359
SC2027 and 2086 disable
TerrenceMcGuinness-NOAA Apr 3, 2024
5c35e7f
still more and more quotes
TerrenceMcGuinness-NOAA Apr 3, 2024
e1eb683
disable SC312 because can not decoplse of quote kill command
TerrenceMcGuinness-NOAA Apr 3, 2024
ab9cc41
added a short verbose called v
TerrenceMcGuinness-NOAA Apr 4, 2024
a72aa6b
working on check test
TerrenceMcGuinness-NOAA Apr 4, 2024
a83cc5e
working on check test
TerrenceMcGuinness-NOAA Apr 4, 2024
ba2e4bc
working on check test
TerrenceMcGuinness-NOAA Apr 4, 2024
8a95e8f
finished debugging run check with stall feature
TerrenceMcGuinness-NOAA Apr 4, 2024
91f6b70
renamed rocoto_statcount to shorter rocotostat.py
TerrenceMcGuinness-NOAA Apr 4, 2024
1ae92c8
finilized updated run-check for Jenknins with STALL feature
TerrenceMcGuinness-NOAA Apr 4, 2024
129b38e
shellnorms quotes on rocotostat script
TerrenceMcGuinness-NOAA Apr 4, 2024
71491bd
added a gh case for changing a label and a PR label in Jekins as not …
TerrenceMcGuinness-NOAA Apr 4, 2024
0e5ac22
replaced all the pullRequests with GH commands in the Jenkkinsfile
TerrenceMcGuinness-NOAA Apr 4, 2024
8eff7e9
needed to set new env var SYSTEM_BUILD_DIR
TerrenceMcGuinness-NOAA Apr 5, 2024
e6eca8b
added gist pup to check_ci for bash for experment error logs
TerrenceMcGuinness-NOAA Apr 5, 2024
b917fee
shellnorms quote crap buch are wrong like tics and such
TerrenceMcGuinness-NOAA Apr 5, 2024
d00a5ef
trying to escape tics for log file markup to GitHub messages
TerrenceMcGuinness-NOAA Apr 5, 2024
7687075
moved post into a stage of the main pipeline so it can use GH on host…
TerrenceMcGuinness-NOAA Apr 5, 2024
50f817e
Stages in Finilized needed steps
TerrenceMcGuinness-NOAA Apr 5, 2024
b140924
need to not use ROOT_DIR when ci scripts run from PR as with Jenkins
TerrenceMcGuinness-NOAA Apr 5, 2024
cebeef7
Merge branch 'develop' into feature/check_stalled_cases
TerrenceMcGuinness-NOAA Apr 5, 2024
03967bb
fixed up printing and publishing error logs in check script
TerrenceMcGuinness-NOAA Apr 5, 2024
f1df84d
moved fail fast
TerrenceMcGuinness-NOAA Apr 5, 2024
c5b9fde
put post back in
TerrenceMcGuinness-NOAA Apr 5, 2024
95fdcf7
removed agent on post
TerrenceMcGuinness-NOAA Apr 5, 2024
e8ce4e6
removed agents again
TerrenceMcGuinness-NOAA Apr 5, 2024
bb09e3f
main pipeline does need agent
TerrenceMcGuinness-NOAA Apr 5, 2024
8da3937
accedetally removed agent from Run Tests
TerrenceMcGuinness-NOAA Apr 5, 2024
4fdb7da
chained fail critera to nead at least on DEAD and scaping stat values…
TerrenceMcGuinness-NOAA Apr 5, 2024
bc4fa4c
miss typed the work script when sending message to PR
TerrenceMcGuinness-NOAA Apr 5, 2024
a85ac3a
put publish script inside try block
TerrenceMcGuinness-NOAA Apr 5, 2024
4c921cf
turned off failFast and made file hlding all the errror logs unique t…
TerrenceMcGuinness-NOAA Apr 5, 2024
ce1d12e
failFast false syntax
TerrenceMcGuinness-NOAA Apr 5, 2024
dc8db2f
removed post and added a finilize stage that only marks success and m…
TerrenceMcGuinness-NOAA Apr 5, 2024
6abfaa5
Had new brakets wrong
TerrenceMcGuinness-NOAA Apr 5, 2024
ce9666e
remoted timestamp and quote errrors
TerrenceMcGuinness-NOAA Apr 6, 2024
ee245eb
removed escapes to tics on home
TerrenceMcGuinness-NOAA Apr 6, 2024
b28ccf4
misstyped script again and gave full path to error log file
TerrenceMcGuinness-NOAA Apr 6, 2024
6c8a0b4
groovy uses double back slash to escape trying to get tic markdown in…
TerrenceMcGuinness-NOAA Apr 6, 2024
23c36de
just some fine tunning on format
TerrenceMcGuinness-NOAA Apr 6, 2024
64f6f3a
just some fine tunning on format still
TerrenceMcGuinness-NOAA Apr 6, 2024
b970e39
one more iteration on format
TerrenceMcGuinness-NOAA Apr 6, 2024
a881648
move failFast not up one level
TerrenceMcGuinness-NOAA Apr 6, 2024
e84e5a0
remove all fail fasts and forced error
TerrenceMcGuinness-NOAA Apr 6, 2024
f8e896f
Merge branch 'NOAA-EMC:develop' into feature/check_stalled_cases
TerrenceMcGuinness-NOAA Apr 6, 2024
2e9331f
test commit permissions on dogwood
Apr 10, 2024
ae6d259
confermend push auth on dogwood
Apr 10, 2024
6d3102f
disable shell check quote globbing for two lines because the quotes n…
TerrenceMcGuinness-NOAA Apr 12, 2024
595df10
Merge branch 'feature/check_stalled_cases' of github.com:TerrenceMcGu…
TerrenceMcGuinness-NOAA Apr 12, 2024
74cc37f
merged develop updates and resolved conflict in build flip
TerrenceMcGuinness-NOAA Apr 12, 2024
776c4ba
added feature to export results for bash
TerrenceMcGuinness-NOAA Apr 12, 2024
3f02523
added and tested export feature to rocoto stauts tool
TerrenceMcGuinness-NOAA Apr 12, 2024
9f2e34c
added export feature output for rocotostat in run check script
TerrenceMcGuinness-NOAA Apr 12, 2024
d8d7798
updated some docstring input vaules
TerrenceMcGuinness-NOAA Apr 12, 2024
41e3064
trying to remove SC2083 shellnorm complaints
TerrenceMcGuinness-NOAA Apr 12, 2024
08a1ddd
trying to remove SC2086 shellnorm complaints when I specificly do not…
TerrenceMcGuinness-NOAA Apr 12, 2024
8404249
extra spaces removed in rocotostat
TerrenceMcGuinness-NOAA Apr 12, 2024
cd3c456
dispelling need for SC2312
TerrenceMcGuinness-NOAA Apr 12, 2024
80fca86
remove ROOT from run check and added system build as third optonal arg
TerrenceMcGuinness-NOAA Apr 12, 2024
7a7a544
fixed bug with eval on export feature from rocotocheck.py
TerrenceMcGuinness-NOAA Apr 12, 2024
ae08b07
needed to update keyword CYCLES to CYCLES_TOTAL and consolidated Fina…
TerrenceMcGuinness-NOAA Apr 13, 2024
e4a78bc
Merge branch 'feature/check_stalled_cases' of github.com:TerrenceMcGu…
TerrenceMcGuinness-NOAA Apr 13, 2024
9a277f0
added error after case fail catch
TerrenceMcGuinness-NOAA Apr 13, 2024
a641b54
suppress All Done message when export is used with rocotocheck
TerrenceMcGuinness-NOAA Apr 13, 2024
d35b115
fixed couple of more bugs STAT vs STATE for one
TerrenceMcGuinness-NOAA Apr 13, 2024
86096da
fixing line breaks in error messages to gitHub
TerrenceMcGuinness-NOAA Apr 13, 2024
714057a
Put when on finalize and put retruns in proper place on error messatge
TerrenceMcGuinness-NOAA Apr 13, 2024
0f1a08f
when is in brackets
TerrenceMcGuinness-NOAA Apr 13, 2024
294f060
when needs to be told it is an expression
TerrenceMcGuinness-NOAA Apr 13, 2024
c545e1c
exta log space and unnecessary comment on each fail and sence run to …
TerrenceMcGuinness-NOAA Apr 13, 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
101 changes: 43 additions & 58 deletions ci/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@ def HOME = 'none'
def caseList = ''
// Location of the custom workspaces for each machine in the CI system. They are persitent for each iteration of the PR.
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/stmp/CI/HERCULES']
def repo_url = 'git@github.com:TerrenceMcGuinness-NOAA/global-workflow.git'
def STATUS = 'Passed'

pipeline {

agent { label 'built-in' }

options {
skipDefaultCheckout()
parallelsAlwaysFailFast()
//parallelsAlwaysFailFast()
}

stages { // This initial stage is used to get the Machine name from the GitHub labels on the PR
Expand Down Expand Up @@ -46,10 +49,8 @@ pipeline {
properties([parameters([[$class: 'NodeParameterDefinition', allowedSlaves: ['built-in', 'Hera-EMC', 'Orion-EMC'], defaultSlaves: ['built-in'], name: '', nodeEligibility: [$class: 'AllNodeEligibility'], triggerIfResult: 'allCases']])])
HOME = "${WORKSPACE}"
sh(script: "mkdir -p ${HOME}/RUNTESTS;rm -Rf ${HOME}/RUNTESTS/error.logs")
pullRequest.addLabel("CI-${Machine}-Building")
if (pullRequest.labels.any { value -> value.matches("CI-${Machine}-Ready") }) {
pullRequest.removeLabel("CI-${Machine}-Ready")
}
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --add-label "CI-${Machine}-Building" """)
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --remove-label "CI-${Machine}-Ready" """)
}
echo "Building and running on ${Machine} in directory ${HOME}"
}
Expand Down Expand Up @@ -108,26 +109,24 @@ pipeline {
catch (Exception error_arch) { echo "Failed to archive error log ${line}: ${error_arch.getMessage()}" }
}
}
repo_url=sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --repo PR_BUILD_${env.CHANGE_ID}", returnStdout: true).trim()
gist_url=sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --gist PR_BUILD_${env.CHANGE_ID}", returnStdout: true).trim()
try {
pullRequest.comment("Build failed on **${Machine}** with error logs:${error_logs_message}\n\nFollow link here to view the contents of the above file(s): [(link)](${gist_url})")
sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --repo PR_BUILD_${env.CHANGE_ID}")
gist_url=sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --gist PR_BUILD_${env.CHANGE_ID}", returnStdout: true).trim()
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "Build **FAILED** on **${Machine}** with error logs:\n\\`\\`\\`${error_logs_message}\n\\`\\`\\`\n\nFollow link here to view the contents of the above file(s): [(link)](${gist_url})" """)
} catch (Exception error_comment) {
echo "Failed to comment on PR: ${error_comment.getMessage()}"
}
error("Failed to build system on ${Machine}")
}
}
sh(script: './link_workflow.sh')
// sh(script: "echo ${HOMEgfs} > BUILT_semaphor")
sh(script: "echo ${HOMEgfs} > BUILT_semaphor")
}
}
if (env.CHANGE_ID && system == 'gfs') {
try {
if (pullRequest.labels.any { value -> value.matches("CI-${Machine}-Building") }) {
pullRequest.removeLabel("CI-${Machine}-Building")
}
pullRequest.addLabel("CI-${Machine}-Running")
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --add-label "CI-${Machine}-Running" """)
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --remove-label "CI-${Machine}-Building" """)
} catch (Exception e) {
echo "Failed to update label from Buildng to Running: ${e.getMessage()}"
}
Expand All @@ -144,6 +143,7 @@ pipeline {
}

stage('Run Tests') {
failFast false
matrix {
agent { label "${machine}-emc" }
axes {
Expand Down Expand Up @@ -175,19 +175,21 @@ pipeline {
when {
expression { return caseList.contains(Case) }
}
failFast false
steps {
script {
HOMEgfs = "${HOME}/gfs" // common HOMEgfs is used to launch the scripts that run the experiments
pslot = sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh get_pslot ${HOME}/RUNTESTS ${Case}", returnStdout: true).trim()
try {
sh(script: "${HOMEgfs}/ci/scripts/run-check_ci.sh ${HOME} ${pslot}")
sh(script: "${HOMEgfs}/ci/scripts/run-check_ci.sh ${HOME} ${pslot} ${system}")
} catch (Exception error_experment) {
sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh cancel_all_batch_jobs ${HOME}/RUNTESTS")
sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh cancel_batch_jobs ${pslot}")
ws(HOME) {
def error_logs = ""
def error_logs_message = ""
if (fileExists("RUNTESTS/error.logs")) {
def fileContent = readFile 'RUNTESTS/error.logs'
def error_file = "${HOME}/RUNTESTS/${pslot}_error.logs"
if (fileExists(error_file)) {
def fileContent = readFile error_file
def lines = fileContent.readLines()
for (line in lines) {
echo "archiving: ${line}"
Expand All @@ -201,15 +203,22 @@ pipeline {
}
}
}
repo_url = sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --repo PR_${env.CHANGE_ID}", returnStdout: true).trim()
gist_url = sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --gist PR_${env.CHANGE_ID}", returnStdout: true).trim()
try {
pullRequest.comment("Experiment ${Case} failed on ${Machine} with error logs: ${error_logs_message}\n\nFollow link here to view the contents of the above file(s): [(link)](${gist_url})")
gist_url = sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --gist PR_${env.CHANGE_ID}", returnStdout: true).trim()
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "Experiment ${Case} **FAILED** on ${Machine} with error logs:\n\\`\\`\\`\n${error_logs_message}\\`\\`\\`\n\nFollow link here to view the contents of the above file(s): [(link)](${gist_url})" """)
sh(script: "${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --repo PR_${env.CHANGE_ID}")
} catch (Exception error_comment) {
echo "Failed to comment on PR: ${error_comment.getMessage()}"
}
} else {
echo "No error logs found for failed cases in $HOME/RUNTESTS/error.logs"
echo "No error logs found for failed cases in $HOME/RUNTESTS/${pslot}_error.logs"
}
STATUS = 'Failed'
try {
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --remove-label "CI-${Machine}-Running" """, returnStatus: true)
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --add-label "CI-${Machine}-${STATUS}" """, returnStatus: true)
} catch (Exception e) {
echo "Failed to update label from Running to ${STATUS}: ${e.getMessage()}"
}
error("Failed to run experiments ${Case} on ${Machine}")
}
Expand All @@ -220,49 +229,25 @@ pipeline {
}
}
}
}

post {
always {
script {
if(env.CHANGE_ID) {
try {
for (label in pullRequest.labels) {
if (label.contains("${Machine}")) {
pullRequest.removeLabel(label)
}
}
} catch (Exception e) {
echo "Failed to remove labels: ${e.getMessage()}"
}
}
}
}
success {
script {
if(env.CHANGE_ID) {
try {
pullRequest.addLabel("CI-${Machine}-Passed")
def timestamp = new Date().format('MM dd HH:mm:ss', TimeZone.getTimeZone('America/New_York'))
pullRequest.comment("**CI SUCCESS** ${Machine} at ${timestamp}\n\nBuilt and ran in directory `${HOME}`")
} catch (Exception e) {
echo "Failed to add success label or comment: ${e.getMessage()}"
}
stage( 'FINALIZE' ) {
when {
expression {
STATUS == 'Passed'
}
}
}
failure {
script {
if(env.CHANGE_ID) {
agent { label "${machine}-emc" }
steps {
script {
try {
pullRequest.addLabel("CI-${Machine}-Failed")
def timestamp = new Date().format('MM dd HH:mm:ss', TimeZone.getTimeZone('America/New_York'))
pullRequest.comment("**CI FAILED** ${Machine} at ${timestamp}<br>Built and ran in directory `${HOME}`")
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --remove-label "CI-${Machine}-Running" """, returnStatus: true)
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --remove-label "CI-${Machine}-Building" """, returnStatus: true)
sh(script: """${GH} pr edit ${env.CHANGE_ID} --repo ${repo_url} --add-label "CI-${Machine}-${STATUS}" """, returnStatus: true)
sh(script: """${GH} pr comment ${env.CHANGE_ID} --repo ${repo_url} --body "**CI ${STATUS}** ${Machine} at <br>Built and ran in directory `${HOME}`" """, returnStatus: true)
} catch (Exception e) {
echo "Failed to add failure label or comment: ${e.getMessage()}"
echo "Failed to update label from Running to ${STATUS}: ${e.getMessage()}"
}
}
}
}
}
}
}
58 changes: 30 additions & 28 deletions ci/scripts/check_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ 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="https://github.com/NOAA-EMC/global-workflow.git"
REPO_URL="git@github.com:TerrenceMcGuinness-NOAA/global-workflow.git"

#########################################################################
# Set up runtime environment varibles for accounts on supproted machines
Expand Down Expand Up @@ -58,7 +59,7 @@ pr_list_dbfile="${GFS_CI_ROOT}/open_pr_list.db"

pr_list=""
if [[ -f "${pr_list_dbfile}" ]]; then
pr_list=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --display | grep -v Failed | grep Running | awk '{print $1}') || true
pr_list=$("${HOMEgfs}/ci/scripts/utils/pr_list_database.py" --dbfile "${pr_list_dbfile}" --list Open Running) || true
fi
if [[ -z "${pr_list+x}" ]]; then
echo "no PRs open and ready to run cases on .. exiting"
Expand Down Expand Up @@ -90,7 +91,7 @@ for pr in ${pr_list}; do
sed -i "1 i\`\`\`" "${output_ci}"
sed -i "1 i\All CI Test Cases Passed on ${MACHINE_ID^}:" "${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}"
"${HOMEgfs}/ci/scripts/utils/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}"
# Check to see if this PR that was opened by the weekly tests and if so close it if it passed on all platforms
weekly_labels=$(${GH} pr view "${pr}" --repo "${REPO_URL}" --json headRefName,labels,author --jq 'select(.author.login | contains("emcbot")) | select(.headRefName | contains("weekly_ci")) | .labels[].name ') || true
if [[ -n "${weekly_labels}" ]]; then
Expand Down Expand Up @@ -123,31 +124,33 @@ for pr in ${pr_list}; do
if [[ ! -f "${db}" ]]; then
continue
fi
rocoto_stat_output=$("${rocotostat}" -w "${xml}" -d "${db}" -s | grep -v CYCLE) || true
num_cycles=$(echo "${rocoto_stat_output}" | wc -l) || true
num_done=$(echo "${rocoto_stat_output}" | grep -c Done) || true
# num_succeeded=$("${rocotostat}" -w "${xml}" -d "${db}" -a | grep -c SUCCEEDED) || true
echo "${pslot} Total Cycles: ${num_cycles} number done: ${num_done}" || true
num_failed=$("${rocotostat}" -w "${xml}" -d "${db}" -a | grep -c -E 'FAIL|DEAD') || true
if [[ ${num_failed} -ne 0 ]]; then
"${GH}" pr edit --repo "${REPO_URL}" "${pr}" --remove-label "CI-${MACHINE_ID^}-Running" --add-label "CI-${MACHINE_ID^}-Failed"
error_logs=$("${rocotostat}" -d "${db}" -w "${xml}" | grep -E 'FAIL|DEAD' | awk '{print "-c", $1, "-t", $2}' | xargs "${rocotocheck}" -d "${db}" -w "${xml}" | grep join | awk '{print $2}') || true
{
echo "Experiment ${pslot} *** FAILED *** on ${MACHINE_ID^}"
echo "Experiment ${pslot} with ${num_failed} tasks failed at $(date +'%D %r')" || true
echo "Error logs:"
echo "${error_logs}"
} >> "${output_ci}"
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
break

set +e
rocoto_state="$("${HOMEgfs}/ci/scripts/utils/rocotostat.py" -w "${xml}" -d "${db}")"
rocoto_error=$?
rm -f "${output_ci_single}"
if [[ "${rocoto_error}" -ne 0 ]]; then
"${GH}" pr edit --repo "${REPO_URL}" "${pr}" --remove-label "CI-${MACHINE_ID^}-Running" --add-label "CI-${MACHINE_ID^}-Failed"
error_logs=$("${rocotostat}" -d "${db}" -w "${xml}" | grep -E 'FAIL|DEAD' | awk '{print "-c", $1, "-t", $2}' | xargs "${rocotocheck}" -d "${db}" -w "${xml}" | grep join | awk '{print $2}') || true
# shellcheck disable=SC2086
${HOMEgfs}/ci/scripts/utils/publish_logs.py --file ${error_logs} --repo "PR_${pr}" > /dev/null
# shellcheck disable=SC2086
gist_url="$("${HOMEgfs}/ci/scripts/utils/publish_logs.py" --file ${error_logs} --gist "PR_${pr}")"
{
echo "Experiment ${pslot} **${rocoto_state}** on ${MACHINE_ID^} at $(date +'%D %r')" || true
echo ""
echo "Error logs:"
echo "\`\`\`"
echo "${error_logs}"
echo "\`\`\`"
echo "Follow link here to view the contents of the above file(s): [(link)](${gist_url})"
} >> "${output_ci_single}"
"${GH}" pr comment "${pr}" --repo "${REPO_URL}" --body-file "${output_ci_single}"
"${HOMEgfs}/ci/scripts/utils/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}"
cancel_all_batch_jobs "${pr_dir}/RUNTESTS"
exit "${rocoto_error}"
fi
if [[ "${num_done}" -eq "${num_cycles}" ]]; then
if [[ "${rocoto_state}" == "DONE" ]]; then
#Remove Experment cases that completed successfully
rm -Rf "${pslot_dir}"
rm -Rf "${pr_dir}/RUNTESTS/COMROOT/${pslot}"
Expand All @@ -157,7 +160,6 @@ for pr in ${pr_list}; do
echo "Experiment ${pslot} **SUCCESS** on ${MACHINE_ID^} at ${DATE}" >> "${output_ci_single}"
echo "Experiment ${pslot} *** SUCCESS *** at ${DATE}" >> "${output_ci}"
"${GH}" pr comment "${pr}" --repo "${REPO_URL}" --body-file "${output_ci_single}"

fi
done
done
5 changes: 3 additions & 2 deletions ci/scripts/clone-build_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ git clone "${REPO_URL}"
cd global-workflow || exit 1

# checkout pull request
"${GH}" pr checkout "${PR}" --repo "${REPO_URL}" --recurse-submodules
"${GH}" pr checkout "${PR}" --repo "${REPO_URL}" --recurse-submodules -j 4
HOMEgfs="${PWD}"
source "${HOMEgfs}/ush/detect_machine.sh"

Expand All @@ -74,7 +74,7 @@ set +e
source "${HOMEgfs}/ush/module-setup.sh"
export BUILD_JOBS=8
rm -rf log.build
./build_all.sh -gu >> log.build 2>&1
./build_all.sh -guk >> log.build 2>&1
build_status=$?

DATE=$(date +'%D %r')
Expand All @@ -83,6 +83,7 @@ if [[ ${build_status} != 0 ]]; then
echo "Build: *** FAILED ***"
echo "Build: Failed at ${DATE}"
cat "${PWD}/log.build"
cat "${PWD}/logs/error.logs"
} >> "${outfile}"
exit "${build_status}"
else
Expand Down
Loading