diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index a71ced78e..4bf62cd01 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,9 +1,38 @@ steps: + - label: "CPU: Run tests on v{{matrix.version}}" + matrix: + setup: + version: + - "1.9" + - "1" + plugins: + - JuliaCI/julia#v1: + version: "{{matrix.version}}" + - JuliaCI/julia-coverage#v1: + codecov: true + dirs: + - KomaMRICore/src + - KomaMRICore/ext + command: | + julia -e 'println("--- :julia: Instantiating project") + using Pkg + Pkg.develop([ + PackageSpec(path=pwd(), subdir="KomaMRIBase"), + PackageSpec(path=pwd(), subdir="KomaMRICore"), + ])' + + julia -e 'println("--- :julia: Running tests") + using Pkg + Pkg.test("KomaMRICore"; coverage=true, julia_args=`--threads=auto`)' + agents: + queue: "juliagpu" + timeout_in_minutes: 120 + - label: "AMDGPU: Run tests on v{{matrix.version}}" matrix: setup: version: - - "1.10" + - "1" plugins: - JuliaCI/julia#v1: version: "{{matrix.version}}" @@ -16,11 +45,14 @@ steps: julia -e 'println("--- :julia: Instantiating project") using Pkg Pkg.develop([ - PackageSpec(path=pwd(), subdir="."), PackageSpec(path=pwd(), subdir="KomaMRIBase"), PackageSpec(path=pwd(), subdir="KomaMRICore"), ])' + julia --project=KomaMRICore/test -e 'println("--- :julia: Add AMDGPU to test environment") + using Pkg + Pkg.add("AMDGPU")' + julia -e 'println("--- :julia: Running tests") using Pkg Pkg.test("KomaMRICore"; coverage=true, test_args=["AMDGPU"])' @@ -34,6 +66,7 @@ steps: setup: version: - "1.9" + - "1" plugins: - JuliaCI/julia#v1: version: "{{matrix.version}}" @@ -46,11 +79,14 @@ steps: julia -e 'println("--- :julia: Instantiating project") using Pkg Pkg.develop([ - PackageSpec(path=pwd(), subdir="."), PackageSpec(path=pwd(), subdir="KomaMRIBase"), PackageSpec(path=pwd(), subdir="KomaMRICore"), ])' + julia --project=KomaMRICore/test -e 'println("--- :julia: Add CUDA to test environment") + using Pkg + Pkg.add("CUDA")' + julia -e 'println("--- :julia: Running tests") using Pkg Pkg.test("KomaMRICore"; coverage=true, test_args=["CUDA"])' @@ -64,6 +100,7 @@ steps: setup: version: - "1.9" + - "1" plugins: - JuliaCI/julia#v1: version: "{{matrix.version}}" @@ -71,11 +108,14 @@ steps: julia -e 'println("--- :julia: Instantiating project") using Pkg Pkg.develop([ - PackageSpec(path=pwd(), subdir="."), PackageSpec(path=pwd(), subdir="KomaMRIBase"), PackageSpec(path=pwd(), subdir="KomaMRICore"), ])' + julia --project=KomaMRICore/test -e 'println("--- :julia: Add Metal to test environment") + using Pkg + Pkg.add("Metal")' + julia -e 'println("--- :julia: Running tests") using Pkg Pkg.test("KomaMRICore"; test_args=["Metal"])' @@ -90,6 +130,7 @@ steps: setup: version: - "1.9" + - "1" plugins: - JuliaCI/julia#v1: version: "{{matrix.version}}" @@ -102,11 +143,14 @@ steps: julia -e 'println("--- :julia: Instantiating project") using Pkg Pkg.develop([ - PackageSpec(path=pwd(), subdir="."), PackageSpec(path=pwd(), subdir="KomaMRIBase"), PackageSpec(path=pwd(), subdir="KomaMRICore"), ])' + julia --project=KomaMRICore/test -e 'println("--- :julia: Add oneAPI to test environment") + using Pkg + Pkg.add("oneAPI")' + julia -e 'println("--- :julia: Running tests") using Pkg Pkg.test("KomaMRICore"; coverage=true, test_args=["oneAPI"])' @@ -119,4 +163,4 @@ env: CI: BUILDKITE CODECOV_FLAGS: core JULIA_PKG_SERVER: "" - SECRET_CODECOV_TOKEN: "lUmUVYkTlE8u0mR/ymv5rtE1A59wXZmQ3miRkmKciC/4+xHPNjpeIJ03FupuC1ElGBeX0m6DDFavZ9burLosGxbBYIPziBQZ5P9NdPDZjBdo7NM3QSSBeUfDsDYbHsYglfJZ35UL6Pd2YTAkJG0ePrTpfUaBb9rcll926NdqUP0vE2hbR2leKFFgBVNtK9Zf+NE7hO3meZQEZ+sN5tA7xGr24A3Ay7ckPg5HbPPD3KII2/fLtW+w0fQUfJdXNFrajJ0FyNE0kNLDlIzoYN6XM4yUeLBXoyXFHnqT5dSu7pqrByEk/ptYpjUzKFoRSnDQy+p8vrx9e/iAVf3lwwgwWA==;U2FsdGVkX1+IZLGTj2FNEy4XvUQbzkZFEwUpwIdRDCKrEea5O/OKGV5vYJufty3m9yniE+av4937HabS9dO1RA==" \ No newline at end of file + SECRET_CODECOV_TOKEN: "lUmUVYkTlE8u0mR/ymv5rtE1A59wXZmQ3miRkmKciC/4+xHPNjpeIJ03FupuC1ElGBeX0m6DDFavZ9burLosGxbBYIPziBQZ5P9NdPDZjBdo7NM3QSSBeUfDsDYbHsYglfJZ35UL6Pd2YTAkJG0ePrTpfUaBb9rcll926NdqUP0vE2hbR2leKFFgBVNtK9Zf+NE7hO3meZQEZ+sN5tA7xGr24A3Ay7ckPg5HbPPD3KII2/fLtW+w0fQUfJdXNFrajJ0FyNE0kNLDlIzoYN6XM4yUeLBXoyXFHnqT5dSu7pqrByEk/ptYpjUzKFoRSnDQy+p8vrx9e/iAVf3lwwgwWA==;U2FsdGVkX1+IZLGTj2FNEy4XvUQbzkZFEwUpwIdRDCKrEea5O/OKGV5vYJufty3m9yniE+av4937HabS9dO1RA==" diff --git a/KomaMRICore/test/initialize.jl b/KomaMRICore/test/initialize.jl index 6cc2ae321..8a8ffc979 100644 --- a/KomaMRICore/test/initialize.jl +++ b/KomaMRICore/test/initialize.jl @@ -2,23 +2,19 @@ using Pkg using Suppressor const USE_GPU = if "AMDGPU" in ARGS - @suppress Pkg.add("AMDGPU") - using AMDGPU + using AMDGPU # ] add AMDGPU to KomaMRICore/test/Project.toml @info "Testing AMD" maxlog=1 true elseif "CUDA" in ARGS - @suppress Pkg.add("CUDA") - using CUDA + using CUDA # ] add CUDA to KomaMRICore/test/Project.toml @info "Testing CUDA" maxlog=1 true elseif "Metal" in ARGS - @suppress Pkg.add("Metal") - using Metal + using Metal # ] add Metal to KomaMRICore/test/Project.toml @info "Testing Metal" maxlog=1 true elseif "oneAPI" in ARGS - @suppress Pkg.add("oneAPI") - using oneAPI + using oneAPI # ] add oneAPI to KomaMRICore/test/Project.toml @info "Testing oneAPI" maxlog=1 true else diff --git a/README.md b/README.md index 2f681d5bc..bb4a5349b 100644 --- a/README.md +++ b/README.md @@ -137,25 +137,33 @@ If you use this package, please cite our paper. ## Tested compatibility -We automatically test KomaMRICore's CPU multi-threading support on the most popular operating systems. Nevertheless, for GPU support, the process is more manual (until [#147](https://github.com/JuliaHealth/KomaMRI.jl/issues/147)). Here is a summary of our automatic CPU tests and local GPU tests for multiple versions of Julia: +All parallel backends are tested on Linux (besides Apple silicon) using the latest stable release, Julia 1 (stable), and Julia 1.9 (compat).