Skip to content

Commit

Permalink
Add Slurm Docker tests (#154)
Browse files Browse the repository at this point in the history
* Add Slurm Docker tests

Start on #105, alternative to #125

Uses container from https://github.com/giovtorres/docker-centos7-slurm

* test more combinations

* sbatch output
  • Loading branch information
simonbyrne committed Oct 7, 2021
1 parent ed7ee82 commit b520580
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/UnitTests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Unit Tests

on:
pull_request:

push:
branches:
- master

jobs:
test-slurm:
timeout-minutes: 20
strategy:
matrix:
os: [ubuntu-latest]
julia_version: ["1.5", "nightly"]
julia_arch: [x64]
fail-fast: false

runs-on: ${{ matrix.os }}

env:
SLURM: "latest"

steps:
- name: Checkout
uses: actions/checkout@v2.2.0

- uses: julia-actions/setup-julia@latest
with:
arch: ${{ matrix.julia_arch }}
version: ${{ matrix.julia_version }}

- name: Start Slurm Docker image
run: |
docker pull giovtorres/docker-centos7-slurm:$SLURM
docker run -d -it -h ernie -v $(pwd):/SlurmTools -v $(julia -e 'print(dirname(Sys.BINDIR))'):/julia --name slurm-$SLURM giovtorres/docker-centos7-slurm:$SLURM
- name: Instantiate package
run: docker exec slurm-$SLURM /julia/bin/julia --project=/SlurmTools -e 'using Pkg; Pkg.instantiate(verbose=true); Pkg.build(verbose=true)'

- name: Run tests without allocation
run: docker exec slurm-$SLURM /julia/bin/julia --project=/SlurmTools -e 'using Pkg; Pkg.test(test_args=["slurm"])'

- name: Run tests inside allocation
run: docker exec slurm-$SLURM salloc -t 00:10:00 -n 2 /julia/bin/julia --project=/SlurmTools -e 'using Pkg; Pkg.test(test_args=["slurm"])'

- name: Run tests inside sbatch
run: |
cat << EOF > sbatch.sh
#!/bin/bash
#SBATCH --ntasks=2
#SBATCH --time=00:10:00
/julia/bin/julia --project=/SlurmTools -e 'using Pkg; Pkg.test(test_args=["slurm"])'
EOF
docker exec slurm-$SLURM sbatch --wait --output=/SlurmTools/output --error=/SlurmTools/output /SlurmTools/sbatch.sh
cat output
13 changes: 13 additions & 0 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,19 @@ using Distributed
wait(rmprocs(workers()))
end

if "slurm" in ARGS
@testset "Slurm" begin
p = addprocs_slurm(1)
@test nprocs() == 2
@test workers() == p
@test fetch(@spawnat :any myid()) == p[1]
@test remotecall_fetch(+,p[1],1,1) == 2
rmprocs(p)
@test nprocs() == 1
@test workers() == [1]
end
end

@static if Sys.iswindows()
windows_which(command) = `powershell.exe -Command Get-Command $command`
is_lsf_installed() = success(windows_which("bsub.exe"))
Expand Down

0 comments on commit b520580

Please sign in to comment.