Skip to content

Slim containers

Slim containers #3505

Workflow file for this run

name: Spack
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
packages: write
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
GITHUB_USER: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
# Filter to allow skipping the test if no relevant changes occurred.
filter:
runs-on: ubuntu-latest
outputs:
test: ${{ steps.filter.outputs.test }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@v4
id: filter
with:
filters: |
test:
- 'palace/**'
- 'cmake/**'
- 'extern/**'
- 'examples/**'
- 'test/examples/**'
- 'test/unit/**'
- 'spack_repo/**'
- '.github/actions/**'
- '.github/workflows/spack.yml'
# Build jobs
build-x64-gcc:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, x64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: gcc
run-regression-tests: 'false'
build-gpu-gcc:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, gpu]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: gcc
variant: +cuda
run-regression-tests: 'false'
build-x64-gcc-openmp:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, x64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: gcc
variant: "+openmp+int64"
run-regression-tests: 'false'
build-x64-gcc-cxx20:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, x64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: gcc
variant: " cxxstd=20"
run-regression-tests: 'false'
build-test-x64-llvm:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, x64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: llvm
additional-test-cases: transmon/transmon_coarse
build-test-x64-intel:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, x64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: intel-oneapi
additional-test-cases: transmon/transmon_coarse
build-test-arm64-gcc:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, arm64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: gcc
additional-test-cases: transmon/transmon_coarse
build-test-arm64-llvm:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, arm64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: llvm
additional-test-cases: transmon/transmon_coarse
build-test-arm64-gcc-armpl:
needs: filter
if: needs.filter.outputs.test == 'true'
runs-on: [self-hosted, arm64]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/palace-ci
with:
toolchain: gcc
math-libs: armpl-gcc
additional-test-cases: transmon/transmon_coarse
# Test jobs
test-x64-gcc:
needs: [filter, build-x64-gcc]
if: success()
strategy:
fail-fast: false
matrix:
include:
- solver: MUMPS
- solver: SuperLU
- solver: STRUMPACK
- solver: Default
runs-on: [self-hosted, x64-4xlarge]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/run-regression-tests
with:
toolchain: gcc
solver: ${{ matrix.solver }}
test-gpu-gcc:
needs: [filter, build-gpu-gcc]
if: success()
strategy:
fail-fast: false
matrix:
include:
- solver: MUMPS
- solver: SuperLU
- solver: STRUMPACK
- solver: Default
runs-on: [self-hosted, gpu-4xlarge]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/run-regression-tests
with:
toolchain: gcc
variant: +cuda
solver: ${{ matrix.solver }}
test-x64-gcc-openmp:
needs: [filter, build-x64-gcc-openmp]
if: success()
strategy:
fail-fast: false
matrix:
include:
- solver: MUMPS
- solver: SuperLU
- solver: STRUMPACK
- solver: Default
runs-on: [self-hosted, x64-4xlarge]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/run-regression-tests
with:
toolchain: gcc
variant: "+openmp+int64"
solver: ${{ matrix.solver }}