Skip to content

Commit

Permalink
Add reporting from Crusher pipeline.
Browse files Browse the repository at this point in the history
  • Loading branch information
cameronrutherford committed Oct 10, 2023
1 parent b30d096 commit 721929a
Showing 1 changed file with 121 additions and 22 deletions.
143 changes: 121 additions & 22 deletions .gitlab/ornl/crusher.gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,81 @@
# Crusher Variables
.crusher_rules:
# https://stackoverflow.com/questions/67009007
# We have to use YAML anchors for rules here
# Rules are also evaluated sequentially, so you need to be careful about
# the order in which these rules are included in child jobs - list "never" rules before other rules
.rules-template:
rules:
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_PINELINE_SOURCE == "schedule"
- when: never
# --
# Rule to fall back on...
- &default
when: always
# --
# Only run when the commit **DOES NOT** contains "[newell-rebuild]"
- &rule_no_newell_rebuild
if: '$CI_COMMIT_TITLE =~ /\[newell-rebuild\]/'
when: never
# Only run when the commit **DOES NOT** contains "[deception-rebuild]"
- &rule_no_deception_rebuild
if: '$CI_COMMIT_TITLE =~ /\[deception-rebuild\]/'
when: never
# Only run when the commit **DOES NOT** contains "[incline-rebuild]"
- &rule_no_incline_rebuild
if: '$CI_COMMIT_TITLE =~ /\[incline-rebuild\]/'
when: never
# Only run when the commit **DOES NOT** contains "[ascent-rebuild]"
- &rule_no_ascent_rebuild
if: '$CI_COMMIT_TITLE =~ /\[ascent-rebuild\]/'
when: never
# Only run when the commit **DOES NOT** contains "[newell-test]"
- &rule_no_newell_test
if: '$CI_COMMIT_TITLE =~ /\[newell-test\]/'
when: never
# Only run when the commit **DOES** contains "[newell-test]"
- &rule_yes_newell_test
if: '$CI_COMMIT_TITLE =~ /\[newell-test\]/'
when: always
# Only run when the commit **DOES NOT** contains "[deception-test]"
- &rule_no_deception_test
if: '$CI_COMMIT_TITLE =~ /\[deception-test\]/'
when: never
# Only run when the commit **DOES** contains "[deception-test]"
- &rule_yes_deception_test
if: '$CI_COMMIT_TITLE =~ /\[deception-test\]/'
when: always
# Only run when the commit **DOES NOT** contains "[incline-test]"
- &rule_no_incline_test
if: '$CI_COMMIT_TITLE =~ /\[incline-test\]/'
when: never
# Only run when the commit **DOES** contains "[incline-test]"
- &rule_yes_incline_test
if: '$CI_COMMIT_TITLE =~ /\[incline-test\]/'
when: always
# Only run when the commit **DOES NOT** contains "[ascent-test]"
- &rule_no_ascent_test
if: '$CI_COMMIT_TITLE =~ /\[ascent-test\]/'
when: never
# Only run when the commit **DOES** contains "[ascent-test]"
- &rule_yes_ascent_test
if: '$CI_COMMIT_TITLE =~ /\[ascent-test\]/'
when: always

.crusher_variables:
# Only for slurm tagged jobs...
variables:
SCHEDULER_PARAMETERS: "-N 1 -A CSC359 --time=60"
WORKDIR: /gpfs/alpine/csc359/proj-shared/ci/${CI_PIPELINE_ID}

.crusher_rules:
rules:
- *rule_no_deception_test
- *rule_no_deception_rebuild
- *rule_no_newell_test
- *rule_no_newell_rebuild
- *rule_no_incline_test
- *rule_no_incline_rebuild
- *rule_no_ascent_test
- *rule_no_ascent_rebuild
- *default

# Crusher Jobs
Crusher Build:
stage: build
Expand Down Expand Up @@ -38,7 +103,7 @@ Crusher Test:
script:
- cd "$WORKDIR"
- export srcdir=$WORKDIR builddir=$WORKDIR/build installdir=$WORKDIR/install
- export CTESTARGS="--output-on-failure -E Python"
- export CTESTARGS="--output-on-failure"
- MY_CLUSTER=crusher ./buildsystem/build.sh --test-only --job=clang-hip
- res=$?
- exit $res
Expand All @@ -49,22 +114,56 @@ Crusher Test:
- .crusher_rules
- .crusher_variables

Crusher Python Test:
stage: test
dependencies:
- "Crusher Build"
# -- Reporting Ascent Status to PNNL GitHub
.report-job:
when: always
variables:
# Don't clone for test jobs
MY_CLUSTER: Crusher
GIT_STRATEGY: none
allow_failure: true
tags: [crusher, slurm]
STATUS_PROJECT: pnnl/ExaGO
STATUS_NAME: amd64/[email protected]/[email protected]/MI100@gfx908
tags:
- nobatch
extends: .ascent_environment_template
environment:
name: reporting-gitlab
resource_group: status
retry: 1

.report-status:
extends: .report-job
script:
- cd "$WORKDIR"
- export srcdir=$WORKDIR builddir=$WORKDIR/build installdir=$WORKDIR/install
- export CTESTARGS="--output-on-failure -R Python"
- MY_CLUSTER=crusher ./buildsystem/build.sh --test-only --job=clang-hip
- res=$?
- exit $res
extends:
- .crusher_rules
- .crusher_variables
- |
curl -L \
-X POST \
-H @${GITHUB_CURL_HEADER}\
https://api.github.com/repos/${STATUS_PROJECT}/statuses/${CI_COMMIT_SHA} \
-d "{\"state\":\"${CI_JOB_NAME}\",\"target_url\":\"${CI_PIPELINE_URL}\",\"description\":\"${STATUS_NAME}\",\"context\":\"${MY_CLUSTER}\"}"
environment:
name: reporting-gitlab

.report-pending:
extends: .report-job
script:
- |
set -x
curl -L \
-X POST \
-H @${GITHUB_CURL_HEADER}\
https://api.github.com/repos/${STATUS_PROJECT}/statuses/${CI_COMMIT_SHA} \
-d "{\"state\":\"${CI_JOB_NAME}\",\"target_url\":\"${CI_PIPELINE_URL}\",\"context\":\"${MY_CLUSTER}\"}"
pending:
extends: .report-pending
stage: .pre

success:
extends: .report-status
stage: .post

failure:
stage: .post
extends: .report-status
rules:
- when: on_failure
# ---

0 comments on commit 721929a

Please sign in to comment.