diff --git a/src/run/mod.rs b/src/run/mod.rs index e6022203..64b8c333 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -266,15 +266,15 @@ pub async fn run( }; if !config.skip_upload { - if provider.get_run_environment() != RunEnvironment::Local { - // If relevant, set the OIDC token for authentication - // Note: OIDC tokens can expire quickly, so we set it just before the upload - provider.set_oidc_token(&mut config).await?; - } - start_group!("Uploading performance data"); - let upload_result = - uploader::upload(&config, &system_info, &provider, &run_data, executor.name()).await?; + let upload_result = uploader::upload( + &mut config, + &system_info, + &provider, + &run_data, + executor.name(), + ) + .await?; end_group!(); if provider.get_run_environment() == RunEnvironment::Local { diff --git a/src/run/uploader/upload.rs b/src/run/uploader/upload.rs index 5cab24d9..119360d5 100644 --- a/src/run/uploader/upload.rs +++ b/src/run/uploader/upload.rs @@ -240,7 +240,7 @@ pub struct UploadResult { #[allow(clippy::borrowed_box)] pub async fn upload( - config: &Config, + config: &mut Config, system_info: &SystemInfo, provider: &Box, run_data: &RunData, @@ -253,6 +253,12 @@ pub async fn upload( provider.get_run_environment() ); + if provider.get_run_environment() != RunEnvironment::Local { + // If relevant, set the OIDC token for authentication + // Note: OIDC tokens can expire quickly, so we set it just before the upload + provider.set_oidc_token(config).await?; + } + let upload_metadata = provider.get_upload_metadata(config, system_info, &profile_archive, executor_name)?; debug!("Upload metadata: {upload_metadata:#?}"); @@ -299,7 +305,7 @@ mod tests { #[ignore] #[tokio::test] async fn test_upload() { - let config = Config { + let mut config = Config { command: "pytest tests/ --codspeed".into(), upload_url: Url::parse("change me").unwrap(), token: Some("change me".into()), @@ -343,7 +349,7 @@ mod tests { async { let provider = crate::run::run_environment::get_provider(&config).unwrap(); upload( - &config, + &mut config, &system_info, &provider, &run_data,