diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0e4897d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,152 @@ +name: CI + +on: + push: + branches: [ "main" ] + pull_request: + +jobs: + # ------------------------------------------- + # 1) CI Format job + # ------------------------------------------- + ci_format: + # If you want to skip if the PR title has 'Draft:' or 'WIP:', + # you can approximate with the condition below. + if: > + github.event_name == 'pull_request' && + (! + ( + contains(github.event.pull_request.title, 'Draft:') || + contains(github.event.pull_request.title, 'WIP:') + ) + ) || + github.event_name == 'push' + runs-on: ubuntu-latest + + # If you need HPC resources, set up a self-hosted runner here: + # runs-on: self-hosted + # or + # runs-on: [self-hosted, darwin-slurm-shared] + + # Equivalent to 'variables:' in GitLab + env: + GIT_SUBMODULE_STRATEGY: recursive + SCHEDULER_PARAMETERS: "--nodes 1 --partition=skylake-gold" + + steps: + - name: Check out code (with submodules) + uses: actions/checkout@v3 + with: + submodules: true + + - name: Set up environment + run: | + source env/bash + + - name: Format + run: | + VERBOSE=1 ./style/format.sh + + - name: Check for changes + run: | + git diff --exit-code --ignore-submodules + + # ------------------------------------------- + # 2) CI CPU job + # ------------------------------------------- + ci_cpu: + # If you wanted it to run only if ci_format succeeded: + needs: ci_format + # Or skip if 'Draft:' or 'WIP:' in PR title + if: > + github.event_name == 'pull_request' && + (! + ( + contains(github.event.pull_request.title, 'Draft:') || + contains(github.event.pull_request.title, 'WIP:') + ) + ) || + github.event_name == 'push' + runs-on: ubuntu-latest + env: + GIT_SUBMODULE_STRATEGY: recursive + SCHEDULER_PARAMETERS: "--nodes 1 --partition=skylake-gold" + + steps: + - name: Check out code (with submodules) + uses: actions/checkout@v3 + with: + submodules: true + + - name: Set up environment + run: | + source env/bash + + - name: Build Jaybenne + run: | + build_jaybenne + + - name: stepdiff tests + run: | + cd tst + ./stepdiff.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff.in --use_mpiexec + ./stepdiff.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff_ddmc.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff_smr.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec --mpi_nthreads 8 + ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock \ + --input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec --mpi_nthreads 8 + + # ------------------------------------------- + # 3) CI GPU job + # ------------------------------------------- + ci_gpu: + needs: ci_format + if: > + github.event_name == 'pull_request' && + (! + ( + contains(github.event.pull_request.title, 'Draft:') || + contains(github.event.pull_request.title, 'WIP:') + ) + ) || + github.event_name == 'push' + runs-on: ubuntu-latest + env: + GIT_SUBMODULE_STRATEGY: recursive + SCHEDULER_PARAMETERS: "--nodes 1 --partition=volta-x86" + + steps: + - name: Check out code (with submodules) + uses: actions/checkout@v3 + with: + submodules: true + + - name: Set up environment + run: | + source env/bash + + - name: Build Jaybenne + run: | + build_jaybenne + + - name: stepdiff GPU tests + run: | + cd tst + ./stepdiff.py --executable ../build_darwin-volta-x86/mcblock \ + --input ../inputs/stepdiff.in --use_mpiexec + ./stepdiff.py --executable ../build_darwin-volta-x86/mcblock \ + --input ../inputs/stepdiff_ddmc.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-volta-x86/mcblock \ + --input ../inputs/stepdiff_smr.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-volta-x86/mcblock \ + --input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec + ./stepdiff_smr.py --executable ../build_darwin-volta-x86/mcblock \ + --input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index fce8aca..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,82 +0,0 @@ -# ======================================================================================== -# (C) (or copyright) 2023-2024. Triad National Security, LLC. All rights reserved. -# -# This program was produced under U.S. Government contract 89233218CNA000001 for Los -# Alamos National Laboratory (LANL), which is operated by Triad National Security, LLC -# for the U.S. Department of Energy/National Nuclear Security Administration. All rights -# in the program are reserved by Triad National Security, LLC, and the U.S. Department -# of Energy/National Nuclear Security Administration. The Government is granted for -# itself and others acting on its behalf a nonexclusive, paid-up, irrevocable worldwide -# license in this material to reproduce, prepare derivative works, distribute copies to -# the public, perform publicly and display publicly, and to permit others to do so. -# ======================================================================================== - -# NOTE(@pdmullen): The following is largely borrowed from the open-source AthenaK -# software, adapted to LANL Darwin runners - -variables: - GIT_SUBMODULE_STRATEGY: recursive - -stages: - - ci_format - - ci_cpu - - ci_gpu - -default: - tags: - - darwin-slurm-shared - -.default-job: - rules: - - if: '$CI_MERGE_REQUEST_TITLE =~ /Draft:/ || $CI_MERGE_REQUEST_TITLE =~ /WIP:/' - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - id_tokens: - SITE_ID_TOKEN: - aud: https://gitlab.lanl.gov - -ci_format-job: - extends: .default-job - stage: ci_format - variables: - SCHEDULER_PARAMETERS: "--nodes 1 --partition=skylake-gold" - script: - - cd $CI_PROJECT_DIR - - source env/bash - - VERBOSE=1 ./style/format.sh - - git diff --exit-code --ignore-submodules - -ci_cpu-job: - extends: .default-job - stage: ci_cpu - variables: - SCHEDULER_PARAMETERS: "--nodes 1 --partition=skylake-gold" - script: - - cd $CI_PROJECT_DIR - - source env/bash - - build_jaybenne - - cd ../tst - - ./stepdiff.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff.in --use_mpiexec - - ./stepdiff.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff_ddmc.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff_smr.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec --mpi_nthreads 8 - - ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-skylake-gold/mcblock --input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec --mpi_nthreads 8 - - -ci_gpu-job: - extends: .default-job - stage: ci_gpu - variables: - SCHEDULER_PARAMETERS: "--nodes 1 --partition=volta-x86" - script: - - cd $CI_PROJECT_DIR - - source env/bash - - build_jaybenne - - cd ../tst - - ./stepdiff.py --executable ../build_darwin-volta-x86/mcblock --input ../inputs/stepdiff.in --use_mpiexec - - ./stepdiff.py --executable ../build_darwin-volta-x86/mcblock --input ../inputs/stepdiff_ddmc.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-volta-x86/mcblock --input ../inputs/stepdiff_smr.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-volta-x86/mcblock --input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec - - ./stepdiff_smr.py --executable ../build_darwin-volta-x86/mcblock --input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec diff --git a/.gitlab/merge_request_templates/Default.md b/.gitlab/merge_request_templates/Default.md deleted file mode 100644 index 9d49f05..0000000 --- a/.gitlab/merge_request_templates/Default.md +++ /dev/null @@ -1,17 +0,0 @@ -### Background - -* item - -### Purpose of Pull Request - -* detail - -### Description of changes - -* item - -### Status - -* Required checks: - - [ ] CI passes - - [ ] At least one approval diff --git a/external/singularity-opac b/external/singularity-opac index b4542ed..b61be52 160000 --- a/external/singularity-opac +++ b/external/singularity-opac @@ -1 +1 @@ -Subproject commit b4542ed7cd618e6ad0d9331205f7ed3d0c2e3a0d +Subproject commit b61be5226fee505d05ffeb6419408740792b51c7