Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spack GitHub action #15

Merged
merged 21 commits into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6b88ce2
Run pre-commit on push instead of pull_request.
cameronrutherford Sep 22, 2023
14cdeea
Consolidate Python and C++ tests into single test job.
cameronrutherford Sep 22, 2023
3f69df6
Add spack CPU build of ExaGO and revert pre-commit change.
cameronrutherford Sep 22, 2023
66bb8c2
Attempt to fix bad substitution in spack syntax.
cameronrutherford Sep 22, 2023
45861ec
Fix bug remaining from consolidating python tests in order to correct…
cameronrutherford Sep 22, 2023
4815cbf
Update README with badges and modify display names.
cameronrutherford Sep 22, 2023
3449433
Update spack submodule with PR #40188
cameronrutherford Sep 25, 2023
5d87b06
Use spack submodule for GitHub action.
cameronrutherford Sep 25, 2023
ba84047
Update spack submodule with logging variant
cameronrutherford Sep 25, 2023
473e3db
Use spack base image...
cameronrutherford Sep 25, 2023
bdc7a4e
Use . instead of source
cameronrutherford Sep 25, 2023
607f349
Don't use E4S cache.
cameronrutherford Sep 25, 2023
29998be
Add some debugging and change spec syntax.
cameronrutherford Sep 25, 2023
5a1996d
No mirrors...
cameronrutherford Sep 25, 2023
46e2ae0
Add solver for python build.
cameronrutherford Sep 25, 2023
28de5f7
Change python build to be with mpi
cameronrutherford Sep 25, 2023
0379460
Fixup CMake testing issue with minimal build.
cameronrutherford Sep 25, 2023
97866f0
Apply pre-commmit fixes
cameronrutherford Sep 25, 2023
b70b5b7
Remove references to unused HIOP_DISTRIBUTED
cameronrutherford Sep 25, 2023
f42470a
Only add testing directory if EXAGO_RUN_TESTS
cameronrutherford Sep 25, 2023
f407dbc
Remove failing build ~mpi+hiop #18
cameronrutherford Sep 25, 2023
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
52 changes: 52 additions & 0 deletions .github/workflows/spack_cpu_build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Spack Builds

# Until we remove the need to clone submodules to build, this should on be in PRs
on: [pull_request]

jobs:
exago_spack_builds:
# 20.04 is a version shared by E4S cache and Spack binaries for x86_64
runs-on: ubuntu-20.04
container: spack/ubuntu-focal:latest
strategy:
matrix:
spack_spec:
- exago@develop+mpi~ipopt~hiop~logging~python~raja ^openmpi
- exago@develop~mpi~ipopt+hiop~logging~python~raja
- exago@develop~mpi~ipopt~hiop~logging~python~raja
- exago@develop~mpi~ipopt~hiop~logging+python~raja
- exago@develop~mpi~ipopt+hiop~logging~python+raja
- exago@develop~mpi~ipopt~hiop~logging~python+raja
cameronrutherford marked this conversation as resolved.
Show resolved Hide resolved

name: Build ExaGO with Spack
steps:
- name: Checkout
uses: actions/checkout@v2
with:
# Once we move submodule deps into spack, we can do some more builds...
submodules: true

- name: Build Environment
env:
SPACK_SPEC: ${{ matrix.spack_spec }}
run: |
ls && pwd
. /opt/spack/share/spack/setup-env.sh
spack debug report
# Just use the public mirror to bootstrap concretizer
# https://spack.io/spack-binary-packages
spack mirror add spack_public_mirror https://binaries.spack.io/develop
spack buildcache keys --install --trust
# Need to create an environment to install hiop in the action's branch
spack env create -d ./spack-env
spack env activate ./spack-env
spack add $SPACK_SPEC target=x86_64
spack develop --path $(pwd) --no-clone exago@git.${{ github.event.pull_request.head.ref}}=develop
# Need to add build cache before concretizing to re-use dependencies
# Add E4S mirror - likely relying on spack cache but nice backup
# https://oaciss.uoregon.edu/e4s/inventory.html
spack mirror add E4S https://cache.e4s.io
spack buildcache keys --install --trust
cameronrutherford marked this conversation as resolved.
Show resolved Hide resolved
spack concretize --reuse
git config --global --add safe.directory $(pwd)
spack --stacktrace install --fail-fast
34 changes: 3 additions & 31 deletions .gitlab/ornl/ascent.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
- cd "$WORKDIR"
- export srcdir=$WORKDIR builddir=$WORKDIR/build installdir=$WORKDIR/install
# Export CTESTARGS defined in variables to run correct tests for stage
- export CTESTARGS="--output-on-failure -E Python"
- export CTESTARGS="$CTESTARGS"
- MY_CLUSTER="ascent" ./buildsystem/build.sh --test-only --job=gcc-cuda
- res=$?
- exit $res
Expand All @@ -101,19 +101,6 @@
- cd "$WORKDIR/.."
- rm -rf "$WORKDIR"

.ascent_python_test_script_template:
script:
- set -xv
- cd "$WORKDIR"
- export srcdir=$WORKDIR builddir=$WORKDIR/build installdir=$WORKDIR/install
# Export CTESTARGS defined in variables to run correct tests for stage
- export CTESTARGS="-VV -R Python"
- MY_CLUSTER="ascent" ./buildsystem/build.sh --test-only --job=gcc-cuda
- res=$?
- exit $res
# ---

# For Ascent CI
Ascent Build:
stage: build
tags:
Expand All @@ -132,28 +119,13 @@ Ascent Test:
variables:
# Don't clone for test jobs
GIT_STRATEGY: none
CTESTARGS: "--output-on-failure -E Python"
CTESTARGS: "--output-on-failure"
extends:
- .ascent_rules
- .ascent_test_script_template
- .ascent_environment_template

Ascent Py Test:
stage: test
dependencies:
- 'Ascent Build'
tags:
- batch
variables:
# Don't clone for test jobs
GIT_STRATEGY: none
extends:
- .ascent_rules
- .ascent_python_test_script_template
- .ascent_environment_template
# ---

# Reporting Ascent Status to PNNL
# -- Reporting Ascent Status to PNNL GitHub
.report-job:
when: always
variables:
Expand Down
15 changes: 1 addition & 14 deletions .gitlab/pnnl/base.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,26 +101,13 @@ stages:
variables:
# Don't clone for test jobs
GIT_STRATEGY: none
CTESTARGS: "--timeout 240 --output-on-failure -E Python"
CTESTARGS: "--timeout 240 --output-on-failure"
OUTPUT_SUFFIX: "_test"
artifacts:
when: always
paths:
- partition

.cluster_py_test:
stage: test
extends:
- .pnnl_tags_template
- .pnnl_script_template
# No after_script as only one test per platform cleans up
# Since python test should finish first, we let other test cleanup
variables:
# Don't clone for test jobs
GIT_STRATEGY: none
CTESTARGS: "--timeout 240 --output-on-failure -R Python"
OUTPUT_SUFFIX: "_test_python"

.module_rebuild:
needs: []
retry: 1
Expand Down
10 changes: 1 addition & 9 deletions .gitlab/pnnl/deception.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,7 @@ Deception Test:
- .cluster_test
- .deception
variables:
CTESTARGS: " --timeout 240 --output-on-failure -E Python -LE deception-skip "
SCRIPT_ARGS: " --test-only --job=gcc-cuda "
needs: ['Deception Build']

Deception Py Test:
extends:
- .cluster_py_test
- .deception
variables:
CTESTARGS: " --timeout 240 --output-on-failure -LE deception-skip "
SCRIPT_ARGS: " --test-only --job=gcc-cuda "
needs: ['Deception Build']

Expand Down
10 changes: 1 addition & 9 deletions .gitlab/pnnl/incline.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,7 @@ Incline Test:
- .incline
variables:
SCRIPT_ARGS: " --test-only --job=clang-hip "
CTESTARGS: " --timeout 240 --output-on-failure -E Python -LE incline-skip "
needs: ['Incline Build']

Incline Py Test:
extends:
- .cluster_py_test
- .incline
variables:
SCRIPT_ARGS: " --test-only --job=clang-hip "
CTESTARGS: " --timeout 240 --output-on-failure -LE incline-skip "
needs: ['Incline Build']

Incline Module Rebuild:
Expand Down
10 changes: 1 addition & 9 deletions .gitlab/pnnl/newell.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,7 @@ Newell Test:
- .cluster_test
- .newell
variables:
CTESTARGS: " --timeout 240 --output-on-failure -E Python -LE newell-skip "
SCRIPT_ARGS: " --test-only --job=gcc-cuda "
needs: ['Newell Build']

Newell Py Test:
extends:
- .cluster_py_test
- .newell
variables:
CTESTARGS: " --timeout 240 --output-on-failure -LE newell-skip "
SCRIPT_ARGS: " --test-only --job=gcc-cuda "
needs: ['Newell Build']

Expand Down