Skip to content

Commit

Permalink
Refactor spack-manager to be a plugin (#577)
Browse files Browse the repository at this point in the history
* Refactor spack-manager to be a plugin
  • Loading branch information
psakievich committed Feb 6, 2024
1 parent ae7458b commit 21eb68f
Show file tree
Hide file tree
Showing 184 changed files with 494 additions and 7,612 deletions.
202 changes: 36 additions & 166 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,200 +5,70 @@ name: Spack-Manager Tests

on:
push:
branches: [ main ]
branches: [ main, develop ]
pull_request:
branches: [ main ]
branches: [ main, develop ]

jobs:
unit-tests:
runs-on: ubuntu-latest
env:
SPACK_MANAGER: ${{github.workspace}}
strategy:
fail-fast: false
matrix:
python-version: [3.7, 3.8, 3.9]
spack-version: [0.21.0, develop]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Checkout Spack
uses: actions/checkout@v3
with:
repository: spack/spack
ref: ${{ matrix.spack-verions }}
path: spack
- name: Setup Spack ${{ matrix.spack-verion }}
run: echo "$PWD/spack/bin" >> "$GITHUB_PATH"
- name: Install extension
run: |
spack config add config:extensions:[${GITHUB_WORKSPACE}]
spack manager --help
- name: Run unit tests
run: ./scripts/run_tests.sh
run: |
. spack/share/spack/setup-env.sh
spack unit-test --extension manager
style-checks:
runs-on: ubuntu-latest
env:
SPACK_MANAGER: ${{github.workspace}}
strategy:
fail-fast: false
matrix:
python-version: [3.9]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Spack Style
run: |
# check our spack extension with spack's style guide
source start.sh
spack-start
spack style spack-scripting
spack style scripts
concretization-basic:
runs-on: ${{matrix.os}}
env:
SPACK_MANAGER: ${{github.workspace}}
strategy:
fail-fast: false
matrix:
python-version: [3.7]
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Run concretization tests
run: |
source start.sh
spack-start
# test and make sure the solver is working for env using clingo
spack solve exawind 1> /dev/null
tests/ci_config_concretization.py -y env-templates/exawind_basic.yaml
tests/ci_config_concretization.py -y env-templates/exawind_matrix.yaml
concretization-matrix:
runs-on: ${{matrix.os}}
env:
SPACK_MANAGER: ${{github.workspace}}
strategy:
fail-fast: false
matrix:
python-version: [3.7]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
- name: Checkout Spack
uses: actions/checkout@v3
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Run concretization tests
run: |
source start.sh
spack-start
# test and make sure the solver is working for env using clingo
spack solve exawind 1> /dev/null
tests/ci_config_concretization.py -y env-templates/exawind_matrix.yaml
quick-commands:
runs-on: ubuntu-latest
env:
SPACK_MANAGER: ${{github.workspace}}
strategy:
fail-fast: true
matrix:
python-version: [3.7]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test quick-commands
run: |
source start.sh
quick-create --name quick-create --spec exawind
spack env deactivate
quick-create-dev --name quick-create-dev --spec amr-wind@main
spack env deactivate
quick-activate ${SPACK_MANAGER}/environments/quick-create-dev
spack env deactivate
quick-create --name spec-with-spaces --spec exawind+hypre build_type=Debug ^amr-wind
reinitialization:
runs-on: ubuntu-latest
env:
SPACK_MANAGER: ${{github.workspace}}
strategy:
fail-fast: true
matrix:
python-version: [3.7]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test multiple spack-start calls
run: |
source start.sh
spack-start
bash -c "source ${SPACK_MANAGER}/start.sh;spack-start"
snapshot-workflow:
runs-on: ubuntu-latest
env:
SPACK_MANAGER: ${{github.workspace}}
E4S_MACHINE: true
strategy:
fail-fast: true
matrix:
python-version: [3.7]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
repository: spack/spack
path: spack
- name: Setup Spack
run: echo "$PWD/spack/bin" >> "$GITHUB_PATH"
- name: Install dependencies
run: |
ls -lh "$PWD/spack"
ls -lh "$PWD/spack/.github/"
cp ${GITHUB_WORKSPACE}/spack/.github/workflows/style/requirements.txt "$PWD"
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test snapshot command
run: |
source start.sh
spack-start
spack manager snapshot -m --name git_refs -s exawind+openfast amr-wind+hypre
quick-activate $SPACK_MANAGER/snapshots/exawind/${SPACK_MANAGER_MACHINE}/git_refs
spack env deactivate
spack manager snapshot -m --name regular_versions -r -s exawind+openfast amr-wind+hypre
quick-activate $SPACK_MANAGER/snapshots/exawind/${SPACK_MANAGER_MACHINE}/regular_versions
spack env deactivate
- name: Install extension
run: spack config add config:extensions:[${GITHUB_WORKSPACE}]
- name: Spack Style Manager
run: spack style ${GITHUB_WORKSPACE}/manager
- name: Spack Style Tests
run: spack style ${GITHUB_WORKSPACE}/tests

9 changes: 0 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
# directories
spack
stage
snapshots
environments
snapshots
golds
logs
tmp
views
modules
cache
configs/user
stage
.bootstrap
.jython_cache
Expand Down
Loading

0 comments on commit 21eb68f

Please sign in to comment.