MCPcopy Create free account
hub / github.com/CodSpeedHQ/codspeed / upload_all

Method upload_all

src/executor/orchestrator.rs:248–288  ·  view source on GitHub ↗
(
        &self,
        completed_runs: &mut [(ExecutionContext, ExecutorName)],
        api_client: &mut CodSpeedAPIClient,
    )

Source from the content-addressed store, hash-verified

246 }
247
248 pub async fn upload_all(
249 &self,
250 completed_runs: &mut [(ExecutionContext, ExecutorName)],
251 api_client: &mut CodSpeedAPIClient,
252 ) -> Result<UploadResult> {
253 let mut last_upload_result: Option<UploadResult> = None;
254
255 let total_runs = completed_runs.len();
256 for (run_part_index, (ctx, executor_name)) in completed_runs.iter_mut().enumerate() {
257 // OIDC tokens can expire quickly, so refresh just before each upload
258 self.provider.set_oidc_token(api_client).await?;
259
260 if total_runs > 1 {
261 info!("Uploading results {}/{total_runs}", run_part_index + 1);
262 }
263 let run_part_suffix =
264 Self::build_run_part_suffix(executor_name, run_part_index, total_runs);
265 let upload_result = upload(
266 self,
267 api_client,
268 ctx,
269 executor_name.clone(),
270 run_part_suffix,
271 )
272 .await?;
273 last_upload_result = Some(upload_result);
274 }
275 info!("Performance data uploaded");
276 if let Some(upload_result) = &last_upload_result {
277 info!(
278 "Linked repository: {}",
279 console::style(format!(
280 "{}/{}",
281 upload_result.owner, upload_result.repository
282 ))
283 .bold()
284 );
285 }
286
287 last_upload_result.ok_or_else(|| anyhow::anyhow!("No completed runs to upload"))
288 }
289}

Callers 1

upload_and_pollMethod · 0.80

Calls 2

uploadFunction · 0.85
set_oidc_tokenMethod · 0.45

Tested by

no test coverage detected