diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml new file mode 100644 index 0000000..565e871 --- /dev/null +++ b/.buildkite/pipeline.yml @@ -0,0 +1,136 @@ +steps: + - group: "CUDA" + key: "cuda" + steps: + - label: "Julia {{matrix.julia}}" + plugins: + - JuliaCI/julia#v1: + version: "{{matrix.julia}}" + - JuliaCI/julia-test#v1: + test_args: "--quickfail" + allow_reresolve: false + - JuliaCI/julia-coverage#v1: + dirs: + - src + - ext + agents: + queue: "juliagpu" + cuda: "*" + commands: | + julia --project -e ' + using Pkg + + adapt = pwd() + devdir = mktempdir() + cuda = joinpath(devdir, "CUDA") + println("--- :julia: Installing TestEnv") + Pkg.activate(; temp=true) + Pkg.add("TestEnv") + using TestEnv + + println("--- :julia: Installing CUDA") + withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0, + "JULIA_PKG_DEVDIR" => devdir) do + try + Pkg.develop("CUDA") + TestEnv.activate("CUDA") + catch err + @error "Could not install CUDA" exception=(err,catch_backtrace()) + exit(3) + finally + Pkg.activate(cuda) + end + end + + println("+++ :julia: Running tests") + Pkg.test(; coverage=true)' + if: | + build.message =~ /\[only tests\]/ || + build.message =~ /\[only cuda\]/ || + build.message !~ /\[only/ && + build.message !~ /\[skip tests\]/ && + build.message !~ /\[skip cuda\]/ + timeout_in_minutes: 60 + matrix: + setup: + julia: + - "1.10" + - "1.11" + - "1.12-nightly" + - "nightly" + adjustments: + - with: + julia: "1.12-nightly" + soft_fail: true + - with: + julia: "nightly" + soft_fail: true + + - group: "AMDGPU" + key: "amdgpu" + steps: + - label: "Julia {{matrix.julia}}" + plugins: + - JuliaCI/julia#v1: + version: "{{matrix.julia}}" + - JuliaCI/julia-test#v1: + test_args: "--quickfail" + allow_reresolve: false + - JuliaCI/julia-coverage#v1: + dirs: + - src + - ext + agents: + queue: "juliagpu" + rocm: "*" + rocmgpu: "*" + commands: | + julia --project -e ' + using Pkg + + adapt = pwd() + devdir = mktempdir() + amdgpu = joinpath(devdir, "AMDGPU") + println("--- :julia: Installing TestEnv") + Pkg.activate(; temp=true) + Pkg.add("TestEnv") + using TestEnv + + println("--- :julia: Installing AMDGPU") + withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0, + "JULIA_PKG_DEVDIR" => devdir) do + try + Pkg.develop("AMDGPU") + TestEnv.activate("AMDGPU") + catch err + @error "Could not install AMDGPU" exception=(err,catch_backtrace()) + exit(3) + finally + Pkg.activate(amdgpu) + end + end + + println("+++ :julia: Running tests") + Pkg.test(; coverage=true)' + if: | + build.message =~ /\[only tests\]/ || + build.message =~ /\[only amdgpu\]/ || + build.message !~ /\[only/ && + build.message !~ /\[skip tests\]/ && + build.message !~ /\[skip amdgpu\]/ + timeout_in_minutes: 60 + matrix: + setup: + julia: + - "1.10" + - "1.11" + - "1.12-nightly" + - "nightly" + adjustments: + - with: + julia: "1.12-nightly" + soft_fail: true + - with: + julia: "nightly" + soft_fail: true +