@@ -19,7 +19,12 @@ steps:
1919 queue : " juliaecosystem"
2020 os : " macos"
2121 arch : " aarch64"
22- if : build.message !~ /\[skip tests\]/
22+ if : |
23+ build.message =~ /\[only tests\]/ ||
24+ build.message =~ /\[only julia\]/ ||
25+ build.message !~ /\[only/ && !build.pull_request.draft &&
26+ build.message !~ /\[skip tests\]/ &&
27+ build.message !~ /\[skip julia\]/
2328 timeout_in_minutes : 60
2429 matrix :
2530 setup :
@@ -46,7 +51,12 @@ steps:
4651 queue : " juliaecosystem"
4752 os : " macos"
4853 arch : " aarch64"
49- if : build.message !~ /\[skip tests\]/ && !build.pull_request.draft
54+ if : |
55+ build.message =~ /\[only tests\]/ ||
56+ build.message =~ /\[only special\]/ ||
57+ build.message !~ /\[only/ && !build.pull_request.draft &&
58+ build.message !~ /\[skip tests\]/ &&
59+ build.message !~ /\[skip special\]/
5060 timeout_in_minutes : 60
5161 matrix :
5262 setup :
@@ -75,7 +85,12 @@ steps:
7585 queue : " juliaecosystem"
7686 os : " macos"
7787 arch : " aarch64"
78- if : build.message !~ /\[skip tests\]/ && !build.pull_request.draft
88+ if : |
89+ build.message =~ /\[only tests\]/ ||
90+ build.message =~ /\[only special\]/ ||
91+ build.message !~ /\[only/ && !build.pull_request.draft &&
92+ build.message !~ /\[skip tests\]/ &&
93+ build.message !~ /\[skip special\]/
7994 timeout_in_minutes : 60
8095 - label : " Opaque pointers"
8196 plugins :
@@ -95,5 +110,114 @@ steps:
95110 queue : " juliaecosystem"
96111 os : " macos"
97112 arch : " aarch64"
98- if : build.message !~ /\[skip tests\]/ && !build.pull_request.draft
113+ if : |
114+ build.message =~ /\[only tests\]/ ||
115+ build.message =~ /\[only special\]/ ||
116+ build.message !~ /\[only/ && !build.pull_request.draft &&
117+ build.message !~ /\[skip tests\]/ &&
118+ build.message !~ /\[skip special\]/
99119 timeout_in_minutes : 60
120+
121+ # we want to benchmark every commit on the master branch, even if it failed CI
122+ - wait : ~
123+ # continue_on_failure: true
124+
125+ - group : " :racehorse: Benchmarks"
126+ steps :
127+ - label : " Benchmarks"
128+ plugins :
129+ - JuliaCI/julia#v1:
130+ version : " 1.10"
131+ command : |
132+ julia --project=perf -e '
133+ using Pkg
134+
135+ println("--- :julia: Instantiating project")
136+ Pkg.develop([PackageSpec(path=pwd())])
137+ Pkg.instantiate()
138+ push!(LOAD_PATH, @__DIR__)
139+
140+ println("+++ :julia: Benchmarking")
141+ include("perf/runbenchmarks.jl")'
142+ artifact_paths :
143+ - " benchmarkresults.json"
144+ agents :
145+ queue : " juliaecosystem"
146+ os : " macos"
147+ arch : " aarch64"
148+ if : |
149+ build.message =~ /\[only benchmarks\]/ ||
150+ build.message !~ /\[only/ && !build.pull_request.draft &&
151+ build.message !~ /\[skip benchmarks\]/
152+ timeout_in_minutes : 30
153+ # - label: "Benchmarks (dry run)"
154+ # plugins:
155+ # - JuliaCI/julia#v1:
156+ # version: "1.10"
157+ # command: |
158+ # julia --project -e '
159+ # using Pkg
160+
161+ # println("--- :julia: Instantiating project")
162+ # Pkg.resolve()
163+ # Pkg.instantiate()
164+ # Pkg.activate("perf")
165+ # Pkg.resolve()
166+ # Pkg.instantiate()
167+ # push!(LOAD_PATH, @__DIR__)
168+
169+ # println("+++ :julia: Benchmarking")
170+ # include("perf/runbenchmarks.jl")'
171+ # artifact_paths:
172+ # - "results.json"
173+ # agents:
174+ # queue: "juliaecosystem"
175+ # os: "macos"
176+ # arch: "aarch64"
177+ # if: |
178+ # build.message =~ /\[only benchmarks\]/ ||
179+ # build.message !~ /\[only/ && !build.pull_request.draft &&
180+ # build.message !~ /\[skip benchmarks\]/
181+ # timeout_in_minutes: 30
182+
183+ # if we will submit results, use the benchmark queue so that we will
184+ # be running on the same system each time
185+ # - label: "Benchmarks on Julia {{matrix.julia}}"
186+ # plugins:
187+ # - JuliaCI/julia#v1:
188+ # version: "{{matrix.julia}}"
189+ # env:
190+ # BENCHMARKS: "true"
191+ # CODESPEED_PROJECT: "$BUILDKITE_PIPELINE_NAME"
192+ # CODESPEED_BRANCH: "$BUILDKITE_BRANCH"
193+ # CODESPEED_COMMIT: "$BUILDKITE_COMMIT"
194+ # CODESPEED_EXECUTABLE: "Julia {{matrix.julia}}"
195+ # command: |
196+ # julia --project -e '
197+ # using Pkg
198+ # ENV["CODESPEED_ENVIRONMENT"] = ENV["BUILDKITE_AGENT_NAME"]
199+
200+ # println("--- :julia: Instantiating project")
201+ # Pkg.resolve()
202+ # Pkg.instantiate()
203+ # Pkg.activate("perf")
204+ # Pkg.resolve()
205+ # Pkg.instantiate()
206+ # push!(LOAD_PATH, @__DIR__)
207+
208+ # println("+++ :julia: Benchmarking")
209+ # include("perf/runbenchmarks.jl")'
210+ # agents:
211+ # queue: "benchmark"
212+ # gpu: "rtx2070"
213+ # cuda: "*"
214+ # if: |
215+ # build.branch =~ /^master$$/ && build.message =~ /\[only benchmarks\]/ ||
216+ # build.branch =~ /^master$$/ && build.message !~ /\[only/ &&
217+ # build.message !~ /\[skip benchmarks\]/
218+ # matrix:
219+ # setup:
220+ # julia:
221+ # - "1.10"
222+ # - "1.11"
223+ # timeout_in_minutes: 30
0 commit comments