Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Commit

Permalink
ci: cleanup and standardize testing
Browse files Browse the repository at this point in the history
  • Loading branch information
avik-pal committed Jul 9, 2024
2 parents c860882 + 7d6386a commit f1eca2d
Show file tree
Hide file tree
Showing 21 changed files with 411 additions and 430 deletions.
236 changes: 25 additions & 211 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,212 +1,26 @@
steps:
- group: ":julia: CUDA GPU"
steps:
- label: ":julia: Julia {{matrix.julia}} + CUDA GPU"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-test#v1:
test_args: "--quickfail"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
agents:
queue: "juliagpu"
cuda: "*"
env:
BACKEND_GROUP: "CUDA"
if: build.message !~ /\[skip tests\]/
timeout_in_minutes: 60
matrix:
setup:
julia:
- "1"

- group: ":telescope: Downstream CUDA"
steps:
- label: ":julia: {{matrix.repo}} (Julia {{matrix.julia}} + CUDA GPU)"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
command: |
julia --code-coverage=user --color=yes --project -e '
using Pkg
repo = ENV["DOWNSTREAM_TEST_REPO"]
println("--- :julia: Instantiating project")
withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0) do
Pkg.instantiate()
try
Pkg.develop(repo)
println("+++ :julia: Running tests")
Pkg.test("$(repo)"; coverage=true)
catch err
err isa Pkg.Resolve.ResolverError || rethrow()
@info "Not compatible with this release. No problem." exception=err
exit(0)
end
end
println("+++ :julia: Finished Downstream Test")'
agents:
queue: "juliagpu"
cuda: "*"
env:
BACKEND_GROUP: "CUDA"
DOWNSTREAM_TEST_REPO: "{{matrix.repo}}"
if: build.message !~ /\[skip tests\]/ || build.message !~ /\[skip downstream\]/
timeout_in_minutes: 240
matrix:
setup:
julia:
- "1"
repo:
- "Lux"
- "Boltz"

- group: ":julia: AMD GPU"
steps:
- label: ":julia: Julia: {{matrix.julia}} + AMD GPU"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-test#v1:
test_args: "--quickfail"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
env:
JULIA_AMDGPU_CORE_MUST_LOAD: "1"
JULIA_AMDGPU_HIP_MUST_LOAD: "1"
JULIA_AMDGPU_DISABLE_ARTIFACTS: "1"
BACKEND_GROUP: "AMDGPU"
agents:
queue: "juliagpu"
rocm: "*"
rocmgpu: "*"
if: build.message !~ /\[skip tests\]/
timeout_in_minutes: 60
matrix:
setup:
julia:
- "1"

- group: ":telescope: Downstream AMD GPU"
steps:
- label: ":julia: {{matrix.repo}} (Julia {{matrix.julia}} + AMD GPU)"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
command: |
julia --code-coverage=user --color=yes --project -e '
using Pkg
repo = ENV["DOWNSTREAM_TEST_REPO"]
println("--- :julia: Instantiating project")
withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0) do
Pkg.instantiate()
try
Pkg.develop(repo)
println("+++ :julia: Running tests")
Pkg.test("$(repo)"; coverage=true)
catch err
err isa Pkg.Resolve.ResolverError || rethrow()
@info "Not compatible with this release. No problem." exception=err
exit(0)
end
end
println("+++ :julia: Finished Downstream Test")'
agents:
queue: "juliagpu"
rocm: "*"
rocmgpu: "*"
env:
BACKEND_GROUP: "AMDGPU"
JULIA_AMDGPU_CORE_MUST_LOAD: "1"
JULIA_AMDGPU_HIP_MUST_LOAD: "1"
JULIA_AMDGPU_DISABLE_ARTIFACTS: "1"
DOWNSTREAM_TEST_REPO: "{{matrix.repo}}"
if: build.message !~ /\[skip tests\]/ || build.message !~ /\[skip downstream\]/
timeout_in_minutes: 240
matrix:
setup:
julia:
- "1"
repo:
- "Lux"
- "Boltz"

- group: ":julia: Metal GPU"
steps:
- label: ":julia: Julia: {{matrix.julia}} + Metal"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-test#v1:
test_args: "--quickfail"
# - JuliaCI/julia-coverage#v1:
# codecov: true
# dirs:
# - src
# - ext
agents:
queue: "juliaecosystem"
os: "macos"
arch: "aarch64"
env:
BACKEND_GROUP: "Metal"
if: build.message !~ /\[skip tests\]/
timeout_in_minutes: 60
matrix:
setup:
julia:
- "1"

- group: ":julia: oneAPI GPU"
steps:
- label: ":julia: Julia: {{matrix.julia}} + oneAPI"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-test#v1:
test_args: "--quickfail"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
env:
BACKEND_GROUP: "oneAPI"
agents:
queue: "juliagpu"
intel: "*"
if: build.message !~ /\[skip tests\]/
timeout_in_minutes: 60
matrix:
setup:
julia:
- "1"

env:
RETESTITEMS_NWORKERS: 8
RETESTITEMS_NWORKER_THREADS: 2
SECRET_CODECOV_TOKEN: "PxSr3Y7vdbiwaoX51uGykPsogxmP1IOBt5Z8TwP9GqDxIrvFocEVV2DR4Bebee12G/HYvXtQTyYXH49DpzlsfJ7ri1GQZxd9WRr+aM1DDYmzfDCfpadp4hMoJ5NQvmc/PzeGrNWOOaewaLTUP1eEaG4suygZN0lc5q9BCchIJeqoklGms5DVt/HtfTmwoD/s4wGoIJINi4RoFgnCAkzSh11hTAkyjVerfBGWEi/8E6+WBq3UKwaW4HnT02wG9qFnD4XkHpIpjMxJTpdBn5ufKI+QoJ7qJHlwqgDCtsOCblApccLTjH/BnTahNoSb/b0wdS/cblOTrtdPGzZ5UvmQ4Q==;U2FsdGVkX1/Ji2Nqeq3tqTYCBik6iXILP+rriPRqj/qxhFu4vBWWT3UnlfqDzj6oVdXyuKt0+5e+x33x2S0mBw=="
- label: "Triggering Pipelines (Pull Request)"
if: "build.pull_request.base_branch == 'main'"
agents:
queue: "juliagpu"
plugins:
- monebag/monorepo-diff#v2.5.9:
diff: ".buildkite/scripts/diff.sh $BUILDKITE_COMMIT"
interpolation: false
watch:
- path:
- "src/"
- "ext/"
- "test/"
- "Project.toml"
- ".buildkite/"
config:
command: "buildkite-agent pipeline upload .buildkite/testing.yml"
agents:
queue: "juliagpu"

- label: "Triggering Pipelines (Main Branch / Tag)"
if: build.branch == "main" || build.tag != null
agents:
queue: "juliagpu"
command: "buildkite-agent pipeline upload .buildkite/testing.yml"
13 changes: 13 additions & 0 deletions .buildkite/scripts/diff.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
set -ueo pipefail

# Script to output the diff where the branch was created
# Usage: ./diff.sh $BUILDKITE_COMMIT

COMMIT_HASH=$1
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

BRANCH_POINT_COMMIT=$($SCRIPT_DIR/find_branch_point.sh "$COMMIT_HASH")
echo >&2 "Cannot find latest build. Running diff against: $BRANCH_POINT_COMMIT"
diff=$(git diff --name-only "$BRANCH_POINT_COMMIT")
echo "$diff"
25 changes: 25 additions & 0 deletions .buildkite/scripts/downstream.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using Pkg

repo = ARGS[1]
if contains(repo, "#")
repo, group = split(repo, "#")
else
group = ARGS[2]
end

println("--- :julia: Instantiating project")
withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0, "GROUP" => group, "BACKEND_GROUP" => group) do
Pkg.instantiate()

try
Pkg.develop(repo)
println("+++ :julia: Running tests")
Pkg.test("$(repo)"; coverage=true)
catch err
err isa Pkg.Resolve.ResolverError || rethrow()
@info "Not compatible with this release. No problem." exception=err
exit(0)
end
end

println("+++ :julia: Finished Downstream Test")
6 changes: 6 additions & 0 deletions .buildkite/scripts/find_branch_point.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash
set -ue

diff -u <(git rev-list --first-parent "$1") \
<(git rev-list --first-parent main) | \
sed -ne 's/^ //p' | head -1
Loading

0 comments on commit f1eca2d

Please sign in to comment.