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
27 changes: 27 additions & 0 deletions .github/actions/test-all-eamxx/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ inputs:
description: 'Semicolon-separated list of key=value pairs for CMake to pass to test-all-eamxx'
required: false
default: ''
kokkos_develop:
description: 'Whether or not this is a test using Kokkos develop branch'
required: false
default: 'false'
valid_values:
- 'true'
- 'false'

runs:
using: "composite"
Expand Down Expand Up @@ -77,6 +84,18 @@ runs:
echo " generate : ${{ inputs.generate }}"
echo " submit : ${{ inputs.submit }}"
echo " cmake-configs: ${{ inputs.cmake-configs }}"
echo " kokkos dev : ${{ inputs.kokkos_develop }}"
shell: sh
- name: Checkout Kokkos develop branch
if: ${{ inputs.kokkos_develop == 'true' }}
working-directory: externals/ekat/extern/kokkos
run: |
echo "Check out up-to-date Kokkos develop branch"
if ! git remote | grep -q upstream; then
git remote add upstream https://github.com/kokkos/kokkos.git
fi
git fetch upstream
git checkout upstream/develop
shell: sh
- name: Run test-all-eamxx
working-directory: components/eamxx
Expand All @@ -98,6 +117,14 @@ runs:
cmd+=" -c $config"
done

# Add suffix for CDASH build name, and necessary cmake vars if this is a kokkos-develop test
if [ "${{ inputs.kokkos_develop }}" = "true" ]; then
cmd+=" --build-name-suffix kokkos_develop"
cmd+=" -c CMAKE_CXX_STANDARD=20"
cmd+=" -c Kokkos_ENABLE_IMPL_VIEW_LEGACY=ON"
cmd+=" -c Kokkos_ENABLE_DEPRECATED_CODE_4=ON"
fi

# Print the full command, then run it
echo "test-all-eamxx call: $cmd"
$cmd
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/eamxx-sa-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,15 @@ on:
description: 'Force cdash submission'
required: true
type: boolean
use_kokkos_dev:
description: 'Run with Kokkos develop branch'
required: true
type: boolean

# Add schedule trigger for nightly runs at midnight MT (Standard Time)
schedule:
- cron: '0 7 * * *' # Runs at 7 AM UTC, which is midnight MT during Standard Time
- cron: '0 7 * * 1' # Weekly run every Monday at 7 AM UTC (using Kokkos develop branch)

concurrency:
# Two runs are in the same group if they are testing the same git ref
Expand All @@ -60,6 +65,8 @@ env:
generate: ${{ github.event_name == 'workflow_dispatch' && inputs.bless }}
# Do EKAT testing for nightlies or (TODO: if EKAT label is present)
ekat: ${{ github.event_name == 'schedule' }}
# For the weekly run, we test using the kokkos develop branch
kokkos_dev_test: ${{ github.event_name == 'schedule' && github.event.schedule == '0 7 * * 1' || (github.event_name == 'workflow_dispatch' && inputs.use_kokkos_dev) }}

jobs:
gcc-openmp:
Expand Down Expand Up @@ -95,6 +102,7 @@ jobs:
submit: ${{ env.submit }}
cmake-configs: Kokkos_ENABLE_OPENMP=ON
ekat: ${{ env.ekat }}
kokkos_develop: ${{ env.kokkos_dev_test }}
gcc-cuda:
if: |
${{
Expand Down Expand Up @@ -163,3 +171,4 @@ jobs:
submit: ${{ env.submit }}
cmake-configs: Kokkos_ARCH_HOPPER90=${{ env.Hopper }};Kokkos_ARCH_AMPERE80=${{ env.Ampere }};Kokkos_ARCH_VOLTA70=${{ env.Volta }};CMAKE_CUDA_ARCHITECTURES=${{ env.CUDA_ARCH }};SCREAM_SMALL_KERNELS=${{ matrix.test.SK }}
ekat: ${{ env.ekat }}
kokkos_develop: ${{ env.kokkos_dev_test }}
2 changes: 2 additions & 0 deletions components/eamxx/scripts/test-all-eamxx
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ OR
choices_doc = ", ".join(["'{}' ({})".format(k, v) for k, v in get_test_name_dict().items()])
parser.add_argument("-t", "--test", dest="tests", action="append", default=[],
help=f"Only run specific test configurations, choices={choices_doc}")
parser.add_argument("--build-name-suffix", default="",
help="Adds a suffix to the test name in dashboard by appending BUILD_NAME_MOD=str(test)+\"_\"+build-name-suffix.")

parser.add_argument("-l", "--local", action="store_true",
help="Allow to not specify a machine name, and have test-all-eamxx to look"
Expand Down
7 changes: 5 additions & 2 deletions components/eamxx/scripts/test_all_eamxx.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ def __init__(self, cxx_compiler=None, f90_compiler=None, c_compiler=None,
local=False, root_dir=None, work_dir=None,
quick_rerun=False,quick_rerun_failed=False,
make_parallel_level=0, ctest_parallel_level=0,
extra_verbose=False, limit_test_regex=None, test_level="at", test_size=None):
extra_verbose=False, limit_test_regex=None, test_level="at", test_size=None,
build_name_suffix=""):
###########################################################################

# When using scripts-tests, we can't pass "-l" to test-all-eamxx,
Expand Down Expand Up @@ -61,6 +62,7 @@ def __init__(self, cxx_compiler=None, f90_compiler=None, c_compiler=None,
self._test_level = test_level
self._test_size = test_size
self._generate = generate
self._build_name_suffix = build_name_suffix

if self._quick_rerun_failed:
self._quick_rerun = True
Expand Down Expand Up @@ -474,7 +476,8 @@ def generate_ctest_config(self, cmake_config, extra_configs, test):
result += f"-DBUILD_WORK_DIR={work_dir} "

build_name_mod = str(test)
result += f"-DBUILD_NAME_MOD={build_name_mod} "
suffix = "_" + self._build_name_suffix if self._build_name_suffix != "" else ""
result += f"-DBUILD_NAME_MOD={build_name_mod}{suffix} "

if self._limit_test_regex:
result += f"-DINCLUDE_REGEX={self._limit_test_regex} "
Expand Down
Loading