Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
60 changes: 0 additions & 60 deletions .github/workflows/deps.yml

This file was deleted.

101 changes: 12 additions & 89 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ variables:
PROJECT_NAME: singularity-eos
ENABLE_CDASH: true
GIT_SUBMODULE_STRATEGY: normal
# use this variable if there is a xcap/deployment MR you want to use instead
# PROJECT_SPACK_ENV_VERSION: "mr/62/2024-10-15"
PROJECT_SPACK_ENV_VERSION: "2025-01-18"

include:
- .gitlab/common.yml
Expand Down Expand Up @@ -47,10 +44,11 @@ prereq_offline_deps:
variables:
GIT_SUBMODULE_STRATEGY: none
script:
- .gitlab/download_prereq.sh
- source .gitlab/download_prereqs.sh
artifacts:
paths:
- goldfiles.tar.gz
- extern

openmpi_gcc:
extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
Expand Down Expand Up @@ -217,7 +215,7 @@ rocinante_craympich_gcc:
SPACK_ENV_NAME: craympich-gcc
SUBMIT_TO_CDASH: false
BUILD_WITH_CTEST: "${ENABLE_CDASH}"
SUBMIT_ON_ERROR: false # Venado nodes don't have network access, don't try to send from compute node
SUBMIT_ON_ERROR: false # Compute nodes don't have network access, don't try to send from compute node
SUBMIT_AFTER: "${ENABLE_CDASH}" # after_script runs on a network connected system

rocinante_craympich_fortran_gcc:
Expand All @@ -228,102 +226,27 @@ rocinante_craympich_fortran_gcc:
SPACK_ENV_NAME: craympich-fortran-gcc
SUBMIT_TO_CDASH: false
BUILD_WITH_CTEST: "${ENABLE_CDASH}"
SUBMIT_ON_ERROR: false # Venado nodes don't have network access, don't try to send from compute node
SUBMIT_ON_ERROR: false # Compute nodes don't have network access, don't try to send from compute node
SUBMIT_AFTER: "${ENABLE_CDASH}" # after_script runs on a network connected system

rzansel_spectrummpi_cuda_volta_gcc:
extends: [.ascgit_job, .rzansel_job, .rzansel_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: spectrummpi-cuda-volta-gcc
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

rzansel_spectrummpi_cuda_volta_xl:
extends: [.ascgit_job, .rzansel_job, .rzansel_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: spectrummpi-cuda-volta-xl
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

rzvernal_craympich_rocm_mi250_cce:
extends: [.ascgit_job, .rzvernal_job, .rzvernal_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: craympich-rocm-gfx90a-cce
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results
SUBMIT_TO_CDASH: false
BUILD_WITH_CTEST: "${ENABLE_CDASH}"
SUBMIT_ON_ERROR: false # Compute nodes don't have network access, don't try to send from compute node
SUBMIT_AFTER: "${ENABLE_CDASH}" # after_script runs on a network connected system

rzadams_craympich_rocm_mi300_cce:
extends: [.ascgit_job, .rzadams_job, .rzadams_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: craympich-rocm-gfx942-cce
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

# collect job results from RZansel and submit them to CDash
post_rzansel_results_to_cdash:
extends: [.post_results_to_cdash, .darwin_job]
allow_failure: true
rules:
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "web"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
needs:
- rzansel_spectrummpi_cuda_volta_gcc
- rzansel_spectrummpi_cuda_volta_xl

# collect job results from RZvernal and submit them to CDash
post_rzvernal_results_to_cdash:
extends: [.post_results_to_cdash, .darwin_job]
allow_failure: true
rules:
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "web"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
needs:
- rzvernal_craympich_rocm_mi250_cce

# collect job results from RZadams and submit them to CDash
post_rzadams_results_to_cdash:
extends: [.post_results_to_cdash, .darwin_job]
allow_failure: true
rules:
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "web"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
needs:
- rzadams_craympich_rocm_mi300_cce
SUBMIT_TO_CDASH: false
BUILD_WITH_CTEST: "${ENABLE_CDASH}"
SUBMIT_ON_ERROR: false # Compute nodes don't have network access, don't try to send from compute node
SUBMIT_AFTER: "${ENABLE_CDASH}" # after_script runs on a network connected system
20 changes: 15 additions & 5 deletions .gitlab/build_and_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ export PROJECT_NAME=singularity-eos
export PROJECT_DEFAULT_BRANCH=main
export PROJECT_TYPE=oss
export PROJECT_GROUP=oss
export PROJECT_SPACK_ENV_CURRENT_DEFAULT="20250118"
export PROJECT_SPACK_ENV_VERSION_DEFAULT="${PROJECT_SPACK_ENV_VERSION_DEFAULT:-${PROJECT_SPACK_ENV_CURRENT_DEFAULT}}"
###############################################################################

export BUILD_DIR=${BUILD_DIR:-build}
Expand All @@ -17,6 +19,7 @@ SUBMIT_ON_ERROR=${SUBMIT_ON_ERROR:-${SUBMIT_TO_CDASH}}
SHOW_HELP_MESSAGE=${SHOW_HELP_MESSAGE:-true}
DEFAULT_TEST_TIMEOUT=${DEFAULT_TEST_TIMEOUT:-600}
AVAILABLE_CLUSTERS=darwin,rocinante,venado,chicoma,rzvernal,rzadams
export XCAP_SPACKAGES_CHECKOUT="${XCAP_SPACKAGES_CHECKOUT:-${SOURCE_DIR}/extern/xcap_spackages}"

if ${SUBMIT_TO_CDASH}; then
UNTIL=${UNTIL:-submit}
Expand All @@ -29,7 +32,12 @@ if ${SUBMIT_ON_ERROR}; then
else
REPORT_ERRORS=""
fi
PROJECT_SPACK_ENV_VERSION=${PROJECT_SPACK_ENV_VERSION:-current}

if [ -n "$PROJECT_SPACK_ENV_MR" ]; then
PROJECT_SPACK_ENV_VERSION=${PROJECT_SPACK_ENV_VERSION:-mr/${PROJECT_SPACK_ENV_MR}/${PROJECT_SPACK_ENV_VERSION_DEFAULT}}
else
PROJECT_SPACK_ENV_VERSION=${PROJECT_SPACK_ENV_VERSION:-${PROJECT_SPACK_ENV_VERSION_DEFAULT}}
fi

# colors
COLOR_BLUE='\033[1;34m'
Expand Down Expand Up @@ -219,6 +227,7 @@ prepare_env() {
fi

source ${CI_SPACK_ENV}/systems/${SYSTEM_NAME}/activate.sh ${PROJECT_GROUP}/${PROJECT_NAME}/${SPACK_ENV_NAME}

if [ -d ${SOURCE_DIR}/spack-repo ]; then
spack repo add ${SOURCE_DIR}/spack-repo
fi
Expand Down Expand Up @@ -327,15 +336,16 @@ if ${SHOW_HELP_MESSAGE}; then
echo " "
echo -e "${COLOR_BLUE}ssh ${CLUSTER}${COLOR_PLAIN}"
echo -e "${COLOR_BLUE}cd /your/${PROJECT_NAME}/checkout${COLOR_PLAIN}"
echo -e "${COLOR_BLUE}.gitlab/download_prereq.sh${COLOR_PLAIN}"
if [ -n "${XCAP_SPACKAGES_MR}" ]; then
echo -e "${COLOR_BLUE}export XCAP_SPACKAGES_MR=${XCAP_SPACKAGES_MR}${COLOR_PLAIN}"
fi
echo -e "${COLOR_BLUE}source .gitlab/download_prereqs.sh${COLOR_PLAIN}"
if [[ ! -z "${LLNL_FLUX_SCHEDULER_PARAMETERS}" ]]; then
echo -e "${COLOR_BLUE}flux alloc ${LLNL_FLUX_SCHEDULER_PARAMETERS}${COLOR_PLAIN}"
elif [[ ! -z "${LLNL_LSF_SCHEDULER_PARAMETERS}" ]]; then
echo -e "${COLOR_BLUE}bsub -I ${LLNL_LSF_SCHEDULER_PARAMETERS}${COLOR_PLAIN}"
else
echo -e "${COLOR_BLUE}salloc ${SCHEDULER_PARAMETERS}${COLOR_PLAIN}"
fi
if [[ "${PROJECT_SPACK_ENV_VERSION}" != "current" ]]; then
if [[ "${PROJECT_SPACK_ENV_VERSION}" != "${PROJECT_SPACK_ENV_CURRENT_DEFAULT}" ]]; then
echo -e "${COLOR_BLUE}export PROJECT_SPACK_ENV_VERSION=${PROJECT_SPACK_ENV_VERSION}${COLOR_PLAIN}"
fi
if [[ ! -z "${SPACK_ENV_SPEC}" ]]; then
Expand Down
31 changes: 1 addition & 30 deletions .gitlab/common.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
default:
interruptible: true
before_script:
- source .gitlab/mr.sh
- unset CI_MERGE_REQUEST_DESCRIPTION
- unset CI_MERGE_REQUEST_TITLE

Expand Down Expand Up @@ -204,33 +205,3 @@ default:
GIT_SUBMODULE_STRATEGY: none
script:
- source .gitlab/check_format.sh ${CLUSTER}

.post_results_to_cdash:
stage: build_n_test
id_tokens:
SITE_ID_TOKEN:
aud: https://asc-git.lanl.gov
variables:
GIT_SUBMODULE_STRATEGY: none
script:
- module load cmake
- cmake --version
- ls *.tar.gz
- export SOURCE_DIR=$PWD
- export BUILD_DIR=build
- |
for t in $(ls *.tar.gz); do
export SYSTEM_NAME=$(echo $t | cut -d - -f 1)
export CTEST_MODE=$(echo $t | cut -d - -f 2)
FULL_NAME=${t%%.*}
export SPACK_ENV_NAME=${FULL_NAME/${SYSTEM_NAME}-${CTEST_MODE}-/}
mkdir -p ${BUILD_DIR}
cd ${BUILD_DIR}
echo "#############################################################################"
echo "Submitting result for ${CTEST_MODE} with ${SPACK_ENV_NAME} on ${SYSTEM_NAME}"
echo "#############################################################################"
tar xvzf ../$t
cd ${CI_PROJECT_DIR}
ctest -V -S .gitlab/build_and_test.cmake,Submit
rm -rf ${BUILD_DIR}
done
3 changes: 0 additions & 3 deletions .gitlab/download_prereq.sh

This file was deleted.

23 changes: 23 additions & 0 deletions .gitlab/download_prereqs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
SINGULARITY_GOLDFILES_VERSION="goldfiles-1.8.0"
wget https://github.com/lanl/singularity-eos/releases/download/${SINGULARITY_GOLDFILES_VERSION}/goldfiles.tar.gz

CHECKOUT_ROOT=$(git rev-parse --show-toplevel)

export XCAP_SPACKAGES_CHECKOUT="${CHECKOUT_ROOT}/extern/xcap_spackages"

mkdir -p $(dirname ${XCAP_SPACKAGES_CHECKOUT})
REPO_URL=$(git remote get-url origin)

if [ ! -d "${XCAP_SPACKAGES_CHECKOUT}" ]; then
git clone "${REPO_URL%/*/*}/spackages.git" "${XCAP_SPACKAGES_CHECKOUT}"
fi

if [ -n "${XCAP_SPACKAGES_MR}" ]; then
git -C ${XCAP_SPACKAGES_CHECKOUT} fetch origin merge-requests/${XCAP_SPACKAGES_MR}/head:mr-${XCAP_SPACKAGES_MR}
export XCAP_SPACKAGES_REF="${XCAP_SPACKAGES_REF:-"mr-${XCAP_SPACKAGES_MR}"}"
else
export XCAP_SPACKAGES_REF="${XCAP_SPACKAGES_REF:-main}"
fi

git -C ${XCAP_SPACKAGES_CHECKOUT} checkout ${XCAP_SPACKAGES_REF}

3 changes: 3 additions & 0 deletions .gitlab/mr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export PROJECT_SPACK_ENV_VERSION_DEFAULT=$(printf '%s\n' "${CI_MERGE_REQUEST_DESCRIPTION}" | grep "^Deployment Version:" | cut -d: -f2)
export PROJECT_SPACK_ENV_MR=$(printf '%s\n' "${CI_MERGE_REQUEST_DESCRIPTION}" | grep "^Requires:" | cut -d: -f2- | grep "xcap/deployment/-/merge_requests" | xargs basename 2>/dev/null)
export XCAP_SPACKAGES_MR=$(printf '%s\n' "${CI_MERGE_REQUEST_DESCRIPTION}" | grep "^Requires:" | cut -d: -f2- | grep "xcap/spackages/-/merge_requests" | xargs basename 2>/dev/null)
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
[submodule "utils/spiner"]
path = utils/spiner
url = https://github.com/lanl/spiner
[submodule "utils/variant"]
path = utils/variant
url = https://github.com/mpark/variant.git
[submodule "utils/kokkos"]
path = utils/kokkos
url = https://github.com/kokkos/kokkos.git
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
- [[PR575]](https://github.com/lanl/singularity-eos/pull/575) Pin variant submodule to the same commit as the spackage

### Infrastructure (changes irrelevant to downstream codes)
- [[PR590]](https://github.com/lanl/singularity-eos/pull/590) Remove local spack-repo and use PortsOfCall::variant instead of mpark::variant
- [[PR595]](https://github.com/lanl/singularity-eos/pull/595) A number of robustness fixes/cleanups. Add a warnings build to the CI.
- [[PR594]](https://github.com/lanl/singularity-eos/pull/594) clean up tests in preparation for ports-of-call variant transition
- [[PR588]](https://github.com/lanl/singularity-eos/pull/588) Add DensityEnergyFromPressureTemperature in unit system test
Expand Down
Loading