Skip to content
Open
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
79 changes: 79 additions & 0 deletions .github/workflows/ci-flux-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: ci-flux-artifacts

on:
workflow_dispatch:

permissions:
contents: read
packages: read

jobs:
spindle-flux-ubuntu:
name: Testsuite (Flux, Ubuntu)
environment: Spindle CI
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Check out Spindle
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

- name: Setup Docker Compose
uses: docker/setup-compose-action@16feee727cbdc83b6a014e6cc26fec4a79bcf30c
with:
version: latest

- name: Build spindle-flux-ubuntu image
id: flux-ubuntu-build
run: |
cd containers/spindle-flux-ubuntu
docker compose --progress=plain build

- name: Bring spindle-flux-ubuntu up
id: flux-ubuntu-up
run: |
cd containers/spindle-flux-ubuntu
docker compose up -d --wait --wait-timeout 60

- name: Verify munge works in spindle-flux-ubuntu
id: flux-ubuntu-munge
run: |
docker exec node-1 bash -c 'munge -n | unmunge'

- name: Run spindle-flux-ubuntu testsuite
id: flux-ubuntu-testsuite
run: |
docker exec node-1 bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 flux alloc --nodes=${workers} ./runTests --nodes=${workers} --tasks-per-node=3'

# - name: Configure host core_pattern for coredumps
# if: ${{ !env.ACT }}
# run: |
# sudo sysctl -w kernel.core_pattern='core.%p'
#
# - name: Run spindle-flux-ubuntu crash tests
# run: |
# docker exec node-1 bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 flux alloc --nodes=${workers} ./run_crash_tests.sh --launcher=flux --nodes=${workers} --scratch=/shared/spindle_crash_test'

- name: Collect Spindle logs from container
if: ${{ always() }}
continue-on-error: true
run: |
mkdir -p spindle-logs
docker cp node-1:/Spindle-build/testsuite/. spindle-logs/ || echo "Log collection failed"
ls -la spindle-logs/

- name: Upload Spindle logs
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: spindle-logs-flux
path: spindle-logs/spindle_output.*
retention-days: 7
if-no-files-found: warn

- name: Bring spindle-flux-ubuntu down
id: flux-ubuntu-down
if: ${{ always() }}
continue-on-error: true
run: |
cd containers/spindle-flux-ubuntu
docker compose down
79 changes: 79 additions & 0 deletions .github/workflows/ci-serial-arm64-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: ci-serial-arm64-artifacts

on:
workflow_dispatch:

permissions:
contents: read
packages: read

jobs:
spindle-serial-ubuntu_arm64:
name: Testsuite (Serial, Ubuntu, arm64)
environment: Spindle CI
runs-on: ubuntu-24.04-arm
timeout-minutes: 30
steps:
- name: Check out Spindle
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

- name: Setup Docker Compose
uses: docker/setup-compose-action@16feee727cbdc83b6a014e6cc26fec4a79bcf30c
with:
version: latest

- name: Build spindle-serial-ubuntu image
id: serial-ubuntu-build
run: |
cd containers/spindle-serial-ubuntu
docker compose --progress=plain build

- name: Bring spindle-serial-ubuntu up
id: serial-ubuntu-up
run: |
cd containers/spindle-serial-ubuntu
docker compose up -d

- name: Verify munge works in spindle-serial-ubuntu
id: serial-ubuntu-munge
run: |
docker exec spindlenode bash -c 'munge -n | unmunge'

- name: Run spindle-serial-ubuntu testsuite
id: serial-ubuntu-testsuite
run: |
docker exec spindlenode bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 ./runTests'

# - name: Configure host core_pattern for coredumps
# if: ${{ !env.ACT }}
# run: |
# sudo sysctl -w kernel.core_pattern='core.%p'
#
# - name: Run spindle-serial-ubuntu crash tests
# run: |
# docker exec spindlenode bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 ./run_crash_tests.sh --launcher=serial --scratch=/tmp/spindle_crash_test'

- name: Collect Spindle logs from container
if: ${{ always() }}
continue-on-error: true
run: |
mkdir -p spindle-logs
docker cp spindlenode:/Spindle-build/testsuite/. spindle-logs/ || echo "Log collection failed"
ls -la spindle-logs/

- name: Upload Spindle logs
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: spindle-logs-serial-arm64
path: spindle-logs/spindle_output.*
retention-days: 7
if-no-files-found: warn

- name: Bring spindle-serial-ubuntu down
id: serial-ubuntu-down
if: ${{ always() }}
continue-on-error: true
run: |
cd containers/spindle-serial-ubuntu
docker compose down
79 changes: 79 additions & 0 deletions .github/workflows/ci-serial-x86-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: ci-serial-x86-artifacts

on:
workflow_dispatch:

permissions:
contents: read
packages: read

jobs:
spindle-serial-ubuntu_x86:
name: Testsuite (Serial, Ubuntu, x86)
environment: Spindle CI
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Check out Spindle
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

- name: Setup Docker Compose
uses: docker/setup-compose-action@16feee727cbdc83b6a014e6cc26fec4a79bcf30c
with:
version: latest

- name: Build spindle-serial-ubuntu image
id: serial-ubuntu-build
run: |
cd containers/spindle-serial-ubuntu
docker compose --progress=plain build

- name: Bring spindle-serial-ubuntu up
id: serial-ubuntu-up
run: |
cd containers/spindle-serial-ubuntu
docker compose up -d

- name: Verify munge works in spindle-serial-ubuntu
id: serial-ubuntu-munge
run: |
docker exec spindlenode bash -c 'munge -n | unmunge'

- name: Run spindle-serial-ubuntu testsuite
id: serial-ubuntu-testsuite
run: |
docker exec spindlenode bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 ./runTests'

# - name: Configure host core_pattern for coredumps
# if: ${{ !env.ACT }}
# run: |
# sudo sysctl -w kernel.core_pattern='core.%p'
#
# - name: Run spindle-serial-ubuntu crash tests
# run: |
# docker exec spindlenode bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 ./run_crash_tests.sh --launcher=serial --scratch=/tmp/spindle_crash_test'

- name: Collect Spindle logs from container
if: ${{ always() }}
continue-on-error: true
run: |
mkdir -p spindle-logs
docker cp spindlenode:/Spindle-build/testsuite/. spindle-logs/ || echo "Log collection failed"
ls -la spindle-logs/

- name: Upload Spindle logs
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: spindle-logs-serial-x86
path: spindle-logs/spindle_output.*
retention-days: 7
if-no-files-found: warn

- name: Bring spindle-serial-ubuntu down
id: serial-ubuntu-down
if: ${{ always() }}
continue-on-error: true
run: |
cd containers/spindle-serial-ubuntu
docker compose down
93 changes: 93 additions & 0 deletions .github/workflows/ci-slurm-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: ci-slurm-artifacts

on:
workflow_dispatch:

permissions:
contents: read
packages: read

jobs:
spindle-slurm-ubuntu:
name: Testsuite (Slurm rshlaunch, Ubuntu)
environment: Spindle CI
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Check out Spindle
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

- name: Setup Docker Compose
uses: docker/setup-compose-action@16feee727cbdc83b6a014e6cc26fec4a79bcf30c
with:
version: latest

- name: Login to GitHub Container Registry
if: ${{ !env.ACT }}
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate MariaDB configuration
id: slurm-ubuntu-mariadb
run: |
cd containers/spindle-slurm-ubuntu/testing
./generate_config.sh

- name: Build spindle-slurm-ubuntu image
id: slurm-ubuntu-build
run: |
cd containers/spindle-slurm-ubuntu/testing
docker compose --progress=plain build

- name: Bring spindle-slurm-ubuntu up
id: slurm-ubuntu-up
run: |
cd containers/spindle-slurm-ubuntu/testing
docker compose up -d --wait --wait-timeout 120

- name: Verify munge works in spindle-slurm-ubuntu
id: slurm-ubuntu-munge
run: |
docker exec slurm-head bash -c 'munge -n | unmunge'

- name: Run spindle-slurm-ubuntu testsuite
id: slurm-ubuntu-testsuite
run: |
docker exec slurm-head bash -c 'cd Spindle-build/testsuite && salloc -n${workers} -N${workers} SPINDLE_DEBUG=3 ./runTests ${workers}'

# - name: Configure host core_pattern for coredumps
# if: ${{ !env.ACT }}
# run: |
# sudo sysctl -w kernel.core_pattern='core.%p'
#
# - name: Run spindle-slurm-ubuntu crash tests
# run: |
# docker exec slurm-head bash -c 'cd Spindle-build/testsuite && SPINDLE_DEBUG=3 ./run_crash_tests.sh --launcher=slurm --nodes=${workers} --scratch=/shared/spindle_crash_test'

- name: Collect Spindle logs from container
if: ${{ always() }}
continue-on-error: true
run: |
mkdir -p spindle-logs
docker cp slurm-head:/Spindle-build/testsuite/. spindle-logs/ || echo "Log collection failed"
ls -la spindle-logs/

- name: Upload Spindle logs
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: spindle-logs-slurm
path: spindle-logs/spindle_output.*
retention-days: 7
if-no-files-found: warn

- name: Bring spindle-slurm-ubuntu down
id: slurm-ubuntu-down
if: ${{ always() }}
continue-on-error: true
run: |
cd containers/spindle-slurm-ubuntu/testing
docker compose down
Loading