mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-10-05 01:49:02 +00:00
Merge topic 'remove-ascent' into release-2.1
f6869aa54 ci,ascent: remove ascent build Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Vicente Bolea <vicente.bolea@kitware.com> Merge-request: !3214
This commit is contained in:
commit
3fcd392285
@ -107,12 +107,6 @@
|
|||||||
when: on_success
|
when: on_success
|
||||||
- when: never
|
- when: never
|
||||||
|
|
||||||
.run_ascent_ci: &run_ascent_ci
|
|
||||||
rules:
|
|
||||||
- if: '$CI_PROJECT_PATH == "ecpcitest/vtk-m"'
|
|
||||||
when: on_success
|
|
||||||
- when: never
|
|
||||||
|
|
||||||
.run_crusher_ci: &run_crusher_ci
|
.run_crusher_ci: &run_crusher_ci
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_PROJECT_PATH == "ci/csc331_crusher/dev/vtk-m"'
|
- if: '$CI_PROJECT_PATH == "ci/csc331_crusher/dev/vtk-m"'
|
||||||
@ -237,7 +231,6 @@ stages:
|
|||||||
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- local: '/.gitlab/ci/ascent.yml'
|
|
||||||
- local: '/.gitlab/ci/crusher.yml'
|
- local: '/.gitlab/ci/crusher.yml'
|
||||||
- local: '/.gitlab/ci/centos7.yml'
|
- local: '/.gitlab/ci/centos7.yml'
|
||||||
- local: '/.gitlab/ci/centos8.yml'
|
- local: '/.gitlab/ci/centos8.yml'
|
||||||
|
@ -1,102 +0,0 @@
|
|||||||
##=============================================================================
|
|
||||||
##
|
|
||||||
## Copyright (c) Kitware, Inc.
|
|
||||||
## All rights reserved.
|
|
||||||
## See LICENSE.txt for details.
|
|
||||||
##
|
|
||||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
## PURPOSE. See the above copyright notice for more information.
|
|
||||||
##
|
|
||||||
##=============================================================================
|
|
||||||
|
|
||||||
# Ad-hoc build that runs in the ECP Hardware, concretely in OLCF Ascent.
|
|
||||||
.ascent_gcc_cuda:
|
|
||||||
variables:
|
|
||||||
CCACHE_BASEDIR: "/gpfs/wolf/"
|
|
||||||
CCACHE_DIR: "/gpfs/wolf/csc331/scratch/vbolea/ci/ccache"
|
|
||||||
# -isystem= is not affected by CCACHE_BASEDIR, thus we must ignore it
|
|
||||||
CCACHE_IGNOREOPTIONS: "-isystem=*"
|
|
||||||
CCACHE_NOHASHDIR: "true"
|
|
||||||
|
|
||||||
CC: "gcc"
|
|
||||||
CXX: "g++"
|
|
||||||
CMAKE_BUILD_TYPE: "RelWithDebInfo"
|
|
||||||
CMAKE_GENERATOR: "Ninja"
|
|
||||||
CUDAHOSTCXX: "g++"
|
|
||||||
CUSTOM_CI_BUILDS_DIR: "/gpfs/wolf/csc331/scratch/vbolea/ci/vtk-m"
|
|
||||||
|
|
||||||
VTKM_SETTINGS: cuda+ascent+ccache
|
|
||||||
JOB_MODULES: >-
|
|
||||||
git-lfs
|
|
||||||
zstd
|
|
||||||
cuda/11.4.2
|
|
||||||
gcc/10.2.0
|
|
||||||
ninja
|
|
||||||
spectrum-mpi
|
|
||||||
lsf-tools
|
|
||||||
cmake
|
|
||||||
interruptible: true
|
|
||||||
|
|
||||||
.setup_env_ecpci: &setup_env_ecpci |
|
|
||||||
module purge
|
|
||||||
module load ${JOB_MODULES}
|
|
||||||
module list
|
|
||||||
export PATH="/gpfs/wolf/csc331/scratch/vbolea/ci/utils:$PATH"
|
|
||||||
|
|
||||||
build:ascent_gcc_cuda:
|
|
||||||
stage: build
|
|
||||||
tags: [olcf, ascent, batch]
|
|
||||||
extends:
|
|
||||||
- .ascent_gcc_cuda
|
|
||||||
- .run_ascent_ci
|
|
||||||
- .cmake_build_artifacts
|
|
||||||
variables:
|
|
||||||
SCHEDULER_PARAMETERS: -P CSC331 -W 2:00 -nnodes 1 -alloc_flags smt1
|
|
||||||
timeout: 125 minutes
|
|
||||||
before_script:
|
|
||||||
- *setup_env_ecpci
|
|
||||||
- ccache -z
|
|
||||||
- git remote add lfs https://gitlab.kitware.com/vtk/vtk-m.git
|
|
||||||
- git fetch lfs
|
|
||||||
- git-lfs install
|
|
||||||
- git-lfs pull lfs
|
|
||||||
script:
|
|
||||||
# Each Ascent (Summit) node has 172 threads (43 cores). SMT1 is needed to
|
|
||||||
# avoid L1 cache pollution among different processes. Thus, using 40 cores
|
|
||||||
# seems a reasonable choice which leaves a couple of cores for system processes.
|
|
||||||
- CTEST_MAX_PARALLELISM=40 cmake -V -P .gitlab/ci/config/gitlab_ci_setup.cmake
|
|
||||||
- ctest -VV -S .gitlab/ci/ctest_configure.cmake
|
|
||||||
- GITLAB_CI_EMULATION=1 jsrun -n1 -a1 -g1 -c40 -bpacked:40 ctest -VV -S .gitlab/ci/ctest_build.cmake
|
|
||||||
after_script:
|
|
||||||
- *setup_env_ecpci
|
|
||||||
- ccache -s
|
|
||||||
- ctest -VV -S .gitlab/ci/ctest_submit_build.cmake
|
|
||||||
|
|
||||||
test:ascent_gcc_cuda:
|
|
||||||
stage: test
|
|
||||||
tags: [olcf, ascent, batch]
|
|
||||||
extends:
|
|
||||||
- .ascent_gcc_cuda
|
|
||||||
- .run_ascent_ci
|
|
||||||
- .cmake_test_artifacts
|
|
||||||
needs:
|
|
||||||
- build:ascent_gcc_cuda
|
|
||||||
dependencies:
|
|
||||||
- build:ascent_gcc_cuda
|
|
||||||
variables:
|
|
||||||
# For tests we want to use a small number of proccesses, for some reason
|
|
||||||
# a higher parallelism number tend to results in test malfunctions.
|
|
||||||
CTEST_MAX_PARALLELISM: 4
|
|
||||||
# We need this to skip ctest_submit from being run inside a jsrun job
|
|
||||||
GITLAB_CI_EMULATION: 1
|
|
||||||
SCHEDULER_PARAMETERS: -P CSC331 -W 1:00 -nnodes 1 -alloc_flags gpudefault
|
|
||||||
timeout: 65 minutes
|
|
||||||
before_script:
|
|
||||||
- *setup_env_ecpci
|
|
||||||
script:
|
|
||||||
- cmake -V -P .gitlab/ci/config/gitlab_ci_setup.cmake
|
|
||||||
- jsrun -n1 -a1 -g1 -c1 ctest -VV -S .gitlab/ci/ctest_test.cmake
|
|
||||||
after_script:
|
|
||||||
- *setup_env_ecpci
|
|
||||||
- ctest -VV -S .gitlab/ci/ctest_submit_test.cmake
|
|
@ -1,26 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
|
|
||||||
##=============================================================================
|
|
||||||
##
|
|
||||||
## Copyright (c) Kitware, Inc.
|
|
||||||
## All rights reserved.
|
|
||||||
## See LICENSE.txt for details.
|
|
||||||
##
|
|
||||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
## PURPOSE. See the above copyright notice for more information.
|
|
||||||
##
|
|
||||||
##=============================================================================
|
|
||||||
|
|
||||||
git rev-parse @ > ./ORIGINAL_COMMIT_SHA
|
|
||||||
git add ./ORIGINAL_COMMIT_SHA
|
|
||||||
|
|
||||||
readonly name="$(git show --quiet --format='%cn')"
|
|
||||||
readonly email="$(git show --quiet --format='%ce')"
|
|
||||||
|
|
||||||
git config --global user.name "$name"
|
|
||||||
git config --global user.email "$email"
|
|
||||||
git commit --amend --no-edit -a
|
|
||||||
|
|
||||||
git rev-parse @ > "$1"
|
|
@ -1,56 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
##=============================================================================
|
|
||||||
##
|
|
||||||
## Copyright (c) Kitware, Inc.
|
|
||||||
## All rights reserved.
|
|
||||||
## See LICENSE.txt for details.
|
|
||||||
##
|
|
||||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
## PURPOSE. See the above copyright notice for more information.
|
|
||||||
##
|
|
||||||
##=============================================================================
|
|
||||||
|
|
||||||
import json
|
|
||||||
import ssl
|
|
||||||
import sys
|
|
||||||
import urllib.request
|
|
||||||
|
|
||||||
|
|
||||||
class ecpci_url_reader:
|
|
||||||
def __init__(self, base_url, token):
|
|
||||||
self.base_url = base_url
|
|
||||||
self.token = token
|
|
||||||
|
|
||||||
def to_string(self, url):
|
|
||||||
opener = urllib.request.build_opener(
|
|
||||||
urllib.request.HTTPSHandler(
|
|
||||||
context=ssl._create_unverified_context()))
|
|
||||||
opener.addheaders = [('PRIVATE-TOKEN', token)]
|
|
||||||
return opener.open(base_url + url).read().decode('utf-8')
|
|
||||||
|
|
||||||
def to_json(self, url):
|
|
||||||
return json.loads(self.to_string(url))
|
|
||||||
|
|
||||||
|
|
||||||
base_url = sys.argv[1]
|
|
||||||
commit = sys.argv[2]
|
|
||||||
token = sys.argv[3]
|
|
||||||
|
|
||||||
handler = ecpci_url_reader(base_url, token)
|
|
||||||
|
|
||||||
commit_info = handler.to_json("/repository/commits/" + commit)
|
|
||||||
last_pipeline_id = str(commit_info['last_pipeline']['id'])
|
|
||||||
|
|
||||||
jobs = handler.to_json("/pipelines/" + last_pipeline_id + "/jobs")
|
|
||||||
build_job_id = str(jobs[1]['id'])
|
|
||||||
test_job_id = str(jobs[0]['id'])
|
|
||||||
|
|
||||||
print("ECPCITEST CONFIGURE OUTPUT============================================")
|
|
||||||
print(handler.to_string("/jobs/" + build_job_id + "/trace"))
|
|
||||||
print("ECPCITEST CONFIGURE END===============================================")
|
|
||||||
|
|
||||||
print("ECPCITEST TEST OUTPUT=================================================")
|
|
||||||
print(handler.to_string("/jobs/" + test_job_id + "/trace"))
|
|
||||||
print("ECPCITEST TEST OUTPUT END=============================================")
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash -ex
|
|
||||||
|
|
||||||
##=============================================================================
|
|
||||||
##
|
|
||||||
## Copyright (c) Kitware, Inc.
|
|
||||||
## All rights reserved.
|
|
||||||
## See LICENSE.txt for details.
|
|
||||||
##
|
|
||||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
## PURPOSE. See the above copyright notice for more information.
|
|
||||||
##
|
|
||||||
##=============================================================================
|
|
||||||
|
|
||||||
git -c http.sslVerify=false push --no-verify -f "$1" "HEAD:refs/heads/${2}"
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash -ex
|
|
||||||
|
|
||||||
##=============================================================================
|
|
||||||
##
|
|
||||||
## Copyright (c) Kitware, Inc.
|
|
||||||
## All rights reserved.
|
|
||||||
## See LICENSE.txt for details.
|
|
||||||
##
|
|
||||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
## PURPOSE. See the above copyright notice for more information.
|
|
||||||
##
|
|
||||||
##=============================================================================
|
|
||||||
|
|
||||||
git -c http.sslVerify=false push --delete "$1" "$2"
|
|
@ -1,80 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
|
|
||||||
##=============================================================================
|
|
||||||
##
|
|
||||||
## Copyright (c) Kitware, Inc.
|
|
||||||
## All rights reserved.
|
|
||||||
## See LICENSE.txt for details.
|
|
||||||
##
|
|
||||||
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
||||||
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
## PURPOSE. See the above copyright notice for more information.
|
|
||||||
##
|
|
||||||
##=============================================================================
|
|
||||||
|
|
||||||
declare -r POLL_INTERVAL_SECONDS="10"
|
|
||||||
|
|
||||||
function fetch_commit_status()
|
|
||||||
{
|
|
||||||
local -r url="$1"
|
|
||||||
local -r commit="$2"
|
|
||||||
|
|
||||||
local output=$(curl --insecure --silent "${url}/repository/commits/${commit}" \
|
|
||||||
| tr ',{}[]' '\n' \
|
|
||||||
| grep -Po -m1 '(?<=^"status":")\w+(?=")' \
|
|
||||||
)
|
|
||||||
|
|
||||||
# No status means that the pipeline has not being created yet
|
|
||||||
[ -z "$output" ] && output="empty"
|
|
||||||
echo "$output"
|
|
||||||
}
|
|
||||||
|
|
||||||
function print_pipeline_url()
|
|
||||||
{
|
|
||||||
local -r url="$1"
|
|
||||||
local -r commit="$2"
|
|
||||||
|
|
||||||
local web_url=$(curl --insecure --silent "${url}" \
|
|
||||||
| tr ',{}[]' '\n' \
|
|
||||||
| grep -Po -m1 '(?<=^"web_url":").+(?=")' \
|
|
||||||
)
|
|
||||||
|
|
||||||
local pipeline_id=$(curl --insecure --silent "${url}/repository/commits/${commit}" \
|
|
||||||
| tr ',{}[]' '\n' \
|
|
||||||
| grep -Po '(?<=^"id":)\d+$' \
|
|
||||||
)
|
|
||||||
|
|
||||||
echo "######################################################################"
|
|
||||||
echo "ECP Pipeline: ${web_url}/-/pipelines/$pipeline_id"
|
|
||||||
echo "######################################################################"
|
|
||||||
}
|
|
||||||
|
|
||||||
function wait_commit_pipeline_status()
|
|
||||||
{
|
|
||||||
local -r base_url="$1"
|
|
||||||
local -r commit="$2"
|
|
||||||
local is_url_printed="no"
|
|
||||||
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
local ret="$(fetch_commit_status "$base_url" "$commit")"
|
|
||||||
|
|
||||||
if [ "$ret" != "empty" ] && [ "$is_url_printed" == "no" ]
|
|
||||||
then
|
|
||||||
print_pipeline_url "$base_url" "$commit"
|
|
||||||
is_url_printed="yes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$ret" in
|
|
||||||
success)
|
|
||||||
return 0 ;;
|
|
||||||
failed|canceled|skipped)
|
|
||||||
echo "ERROR: The pipeline exited with \`${ret}\` status" > /dev/stderr
|
|
||||||
return 1 ;;
|
|
||||||
esac
|
|
||||||
sleep "$POLL_INTERVAL_SECONDS"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
wait_commit_pipeline_status "$1" "$2"
|
|
@ -116,10 +116,6 @@ foreach(option IN LISTS options)
|
|||||||
set(CMAKE_HIP_FLAGS "-O0 " CACHE STRING "")
|
set(CMAKE_HIP_FLAGS "-O0 " CACHE STRING "")
|
||||||
set(CMAKE_HIP_FLAGS_RELWITHDEBINFO "-g" CACHE STRING "")
|
set(CMAKE_HIP_FLAGS_RELWITHDEBINFO "-g" CACHE STRING "")
|
||||||
|
|
||||||
elseif(ascent STREQUAL option)
|
|
||||||
set(CMAKE_C_FLAGS "-mcpu=power9" CACHE STRING "")
|
|
||||||
set(CMAKE_CXX_FLAGS "-mcpu=power9" CACHE STRING "")
|
|
||||||
|
|
||||||
elseif(ccache STREQUAL option)
|
elseif(ccache STREQUAL option)
|
||||||
find_program(CCACHE_COMMAND NAMES ccache REQUIRED)
|
find_program(CCACHE_COMMAND NAMES ccache REQUIRED)
|
||||||
|
|
||||||
|
@ -87,29 +87,3 @@ test:ubuntu2004_hip_kokkos:
|
|||||||
needs:
|
needs:
|
||||||
- build:ubuntu2004_hip_kokkos
|
- build:ubuntu2004_hip_kokkos
|
||||||
timeout: 3 hours
|
timeout: 3 hours
|
||||||
|
|
||||||
# This is only for merge-requests
|
|
||||||
build:ascent:
|
|
||||||
stage: build
|
|
||||||
variables:
|
|
||||||
BRANCH_NAME: "mr${CI_MERGE_REQUEST_IID}-${CI_COMMIT_REF_NAME}"
|
|
||||||
ASCENT_REST_URL: "https://code.ornl.gov/api/v4/projects/7035"
|
|
||||||
ASCENT_GIT_URL: "https://vbolea:${ECPTEST_TOKEN}@code.ornl.gov/ecpcitest/vtk-m.git"
|
|
||||||
tags:
|
|
||||||
- vtkm
|
|
||||||
- docker
|
|
||||||
- build
|
|
||||||
- linux-x86_64
|
|
||||||
extends:
|
|
||||||
- .ubuntu2004
|
|
||||||
- .run_only_merge_requests
|
|
||||||
script:
|
|
||||||
# A new commit is needed to symbolize a restart of a build from the same original commit
|
|
||||||
- .gitlab/ci/config/ecpci-amend-commit.sh "NEW_COMMIT_SHA"
|
|
||||||
- .gitlab/ci/config/ecpci-push-branch.sh "$ASCENT_GIT_URL" "$BRANCH_NAME"
|
|
||||||
- timeout 130m .gitlab/ci/config/ecpci-wait-commit-status.sh "$ASCENT_REST_URL" "$(cat NEW_COMMIT_SHA)"
|
|
||||||
after_script:
|
|
||||||
- .gitlab/ci/config/ecpci-remove-branch.sh "$ASCENT_GIT_URL" "$BRANCH_NAME" || true
|
|
||||||
- .gitlab/ci/config/ecpci-fetch-commit-trace.py "$ASCENT_REST_URL" "$(cat NEW_COMMIT_SHA)" "$ECPTEST_TOKEN"
|
|
||||||
timeout: 150 minutes
|
|
||||||
interruptible: true
|
|
||||||
|
Loading…
Reference in New Issue
Block a user