diff --git a/.gitlab/nersc.yml b/.gitlab/nersc.yml deleted file mode 100644 index e8e5ed30b..000000000 --- a/.gitlab/nersc.yml +++ /dev/null @@ -1,39 +0,0 @@ -# This pipeline is run at NERSC at https://software.nersc.gov/NERSC/buildtest - -stages: - - regression - -.regression_test: - stage: regression - rules: - - if: '$CI_PIPELINE_SOURCE == "external_pull_request_event" && $CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH' - changes: - - buildtest/**/* - - tests/**/* - - script: - - set -e - - whoami - - export NERSC_HOST=`cat /etc/clustername` - - module load python/3.9-anaconda-2021.11 - - git branch - - conda create -p $CI_PROJECT_DIR/.conda python=3.9 -y - - conda activate $CI_PROJECT_DIR/.conda - - source setup.sh - - pip install -r docs/requirements.txt - - python $BUILDTEST_ROOT/buildtest/tools/unittests.py -c - - echo $? - - curl -Os https://uploader.codecov.io/latest/linux/codecov - - chmod +x codecov - # CODECOV_TOKEN environment must be set, this value is stored in CI/CD variable at https://software.nersc.gov/NERSC/buildtest/-/settings/ci_cd - - ./codecov --verbose -t $CODECOV_TOKEN - - conda deactivate - - conda env remove -p $CI_PROJECT_DIR/.conda -y - -perlmutter_test: - extends: .regression_test - tags: [perlmutter-bdtest] - -muller_test: - extends: .regression_test - tags: [muller-bdtest] diff --git a/LEGAL.txt b/LEGAL.txt index 822df7c17..34ceb53d5 100644 --- a/LEGAL.txt +++ b/LEGAL.txt @@ -1,4 +1,4 @@ -Copyright (c) 2021-2024, The Regents of the University of California, +Copyright (c) 2021-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy), Shahzeb Siddiqui, and Vanessa Sochat. All rights reserved. diff --git a/LICENSE b/LICENSE index 36423fcbb..530203747 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021-2024 The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy), Shahzeb Siddiqui, and Vanessa Sochat. All rights reserved. +Copyright (c) 2021-2025 The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy), Shahzeb Siddiqui, and Vanessa Sochat. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/buildtest/cli/buildspec.py b/buildtest/cli/buildspec.py index c3aea79ea..2253a467a 100644 --- a/buildtest/cli/buildspec.py +++ b/buildtest/cli/buildspec.py @@ -208,7 +208,6 @@ def _discover_buildspecs(self): file_traversal_limit = self.configuration.target_config.get( "file_traversal_limit", 1000 ) - print("file_traversal_limit", file_traversal_limit) # recursively search all .yml files in directory and add to list if self.paths: diff --git a/docs/contributing/github_integration.rst b/docs/contributing/github_integration.rst index f69c5cae9..e34599513 100644 --- a/docs/contributing/github_integration.rst +++ b/docs/contributing/github_integration.rst @@ -29,23 +29,6 @@ to see status of coverage report during PR review process. The codecov file `.codecov.yml `_ is used for configuration codecov. For more details on codecov yaml file see https://docs.codecov.io/docs/codecov-yaml. -Gitlab CI checks ------------------- - -buildtest has automated CI checks on gitlab servers: https://software.nersc.gov (NERSC) and https://code.ornl.gov (OLCF). The -gitlab pipelines are stored in `.gitlab `_ directory found -in root of repository. We have imported the buildtest project using the `Gitlab CI/CD for external repositories `_ feature -to automatically pull mirror and run CI/CD from incoming Pull Request to buildtest project on GitHub. - -The project mirrors are located in the following location - -- NERSC: https://software.nersc.gov/NERSC/buildtest -- OLCF: https://code.ornl.gov/ecpcitest/buildtest - -We have configured each gitlab project to point to the gitlab configuration file. For instance, at NERSC we use -`.gitlab/nersc.yml `_ that runs CI on Cori, this can be configured at -**Settings > CI/CD > General pipelines** with the path to gitlab configuration. For more details see https://docs.gitlab.com/ee/ci/pipelines/settings.html#custom-cicd-configuration-path - GitHub Bots ----------- diff --git a/setup.csh b/setup.csh index 01f9acc1d..2576461de 100755 --- a/setup.csh +++ b/setup.csh @@ -1,7 +1,7 @@ #!/bin/csh # MIT License -# Copyright (c) 2021-2024, The Regents of the University of California, +# Copyright (c) 2021-2025, The Regents of the University of California, # through Lawrence Berkeley National Laboratory (subject to receipt of # any required approvals from the U.S. Dept. of Energy), Shahzeb Siddiqui, # and Vanessa Sochat. All rights reserved. diff --git a/setup.sh b/setup.sh index 8e08aae81..2d003968e 100755 --- a/setup.sh +++ b/setup.sh @@ -1,7 +1,7 @@ #!/bin/bash # MIT License -# Copyright (c) 2021-2024, The Regents of the University of California, +# Copyright (c) 2021-2025, The Regents of the University of California, # through Lawrence Berkeley National Laboratory (subject to receipt of # any required approvals from the U.S. Dept. of Energy), Shahzeb Siddiqui, # and Vanessa Sochat. All rights reserved. diff --git a/tests/test_nersc.py b/tests/test_nersc.py deleted file mode 100644 index 42d462686..000000000 --- a/tests/test_nersc.py +++ /dev/null @@ -1,129 +0,0 @@ -import os -import shutil -import tempfile - -import pytest - -from buildtest.cli.build import BuildTest -from buildtest.cli.buildspec import BuildspecCache -from buildtest.cli.compilers import ( - BuildtestCompilers, - compiler_find, - compiler_test, - remove_compilers, -) -from buildtest.config import SiteConfiguration -from buildtest.defaults import BUILDTEST_ROOT -from buildtest.system import BuildTestSystem - - -class TestNersc: - here = os.path.dirname(os.path.abspath(__file__)) - if not os.getenv("NERSC_HOST") in ["perlmutter", "muller"]: - pytest.skip( - "This test can only run on Perlmutter Login nodes", allow_module_level=True - ) - settings_file = os.path.join(here, "settings", "nersc.yml") - - system = BuildTestSystem() - - bc = SiteConfiguration(settings_file) - bc.detect_system() - bc.validate() - BuildspecCache(rebuild=True, configuration=bc) - - def test_slurm_hostname(self): - if not os.getenv("NERSC_HOST") in ["perlmutter", "muller"]: - pytest.skip( - "This test can only run on Perlmutter Login nodes", - allow_module_level=True, - ) - - cmd = BuildTest( - configuration=self.bc, - buildspecs=[ - os.path.join( - BUILDTEST_ROOT, "tests", "examples", "perlmutter", "hostname.yml" - ) - ], - poll_interval=5, - maxpendtime=120, - numprocs=[1, 4], - ) - try: - cmd.build() - except SystemExit: - pass - - def test_slurm_max_pend(self): - if not os.getenv("NERSC_HOST") in ["perlmutter", "muller"]: - pytest.skip( - "This test can only run on Perlmutter Login nodes", - allow_module_level=True, - ) - cmd = BuildTest( - configuration=self.bc, - buildspecs=[ - os.path.join( - os.getenv("BUILDTEST_ROOT"), - "tests", - "examples", - "perlmutter", - "hold_job.yml", - ) - ], - poll_interval=5, - maxpendtime=10, - ) - with pytest.raises(SystemExit): - cmd.build() - - def test_compiler_find(self): - if not os.getenv("NERSC_HOST") in ["perlmutter", "muller"]: - pytest.skip( - "This test can only run on Perlmutter Login nodes", - allow_module_level=True, - ) - # testing buildtest config compilers find - compilers = BuildtestCompilers(configuration=self.bc) - compilers.find_compilers() - - # test entry point for 'buildtest config compilers find --detailed' - compiler_find(configuration=self.bc, detailed=True) - - def test_compiler_test(self): - if not os.getenv("NERSC_HOST") in ["perlmutter", "muller"]: - pytest.skip( - "This test can only run on Perlmutter Login nodes", - allow_module_level=True, - ) - # testing buildtest config compilers test - compiler_test(configuration=self.bc) - - def test_compiler_find_alternative_filepath(self): - if not os.getenv("NERSC_HOST") in ["perlmutter", "muller"]: - pytest.skip( - "This test can only run on Perlmutter Login nodes", - allow_module_level=True, - ) - # testing buildtest config compilers find - compilers = BuildtestCompilers(configuration=self.bc) - compilers.find_compilers() - - # test entry point for 'buildtest config compilers find --file' - temp_path = tempfile.NamedTemporaryFile(dir=os.path.expanduser("~")) - compiler_find(configuration=self.bc, filepath=temp_path.name) - temp_path.close() - - def test_compiler_remove(self): - # will create a copy of configuration file and remove one compiler from configuration. We dont want to modify the original configuration file - tf = tempfile.NamedTemporaryFile(suffix=".yml") - shutil.copy(self.settings_file, tf.name) - - config = SiteConfiguration(tf.name) - config.detect_system() - config.validate() - - compilers = BuildtestCompilers(configuration=config) - # remove one compiler from configuration - remove_compilers(configuration=self.bc, names=[compilers.names()[0]])