diff --git a/build/azure-pipelines/common/downloadNotice.ts b/build/azure-pipelines/common/downloadNotice.ts index e40230bac89..8c6aa297f22 100644 --- a/build/azure-pipelines/common/downloadNotice.ts +++ b/build/azure-pipelines/common/downloadNotice.ts @@ -44,7 +44,7 @@ const QUALITY_JOB_NAMES = ['Quality Checks', 'Quality']; const SHIPPING_NOTICE_NAME = 'ThirdPartyNotices.new.txt'; const TARGET_NOTICE = path.resolve('ThirdPartyNotices.txt'); -// Poll budget: 20 attempts x 30s = 10 minutes. Deliberately far below the +// Poll budget: 30 attempts x 30s = 15 minutes. Deliberately far below the // copilot 30min so a never-produced artifact degrades to fallback quickly, but // with generous margin over the parallel Quality stage (CG + scan + merge). // The gate accepts only once ThirdPartyNotices.new.txt has been downloaded, @@ -58,7 +58,7 @@ const TARGET_NOTICE = path.resolve('ThirdPartyNotices.txt'); // NB: this is the OUTER artifact-availability poll. It is unrelated to the // inner retry() wrapper in retry.ts, which independently retries each AZDO API // call up to 10 times for transient network errors and emits no attempt log. -const POLL_ATTEMPTS = 20; +const POLL_ATTEMPTS = 30; const POLL_INTERVAL_MS = 30_000; function log(message: string): void { diff --git a/build/azure-pipelines/product-quality-checks.yml b/build/azure-pipelines/product-quality-checks.yml index 8533fe77b21..6ff1658deaf 100644 --- a/build/azure-pipelines/product-quality-checks.yml +++ b/build/azure-pipelines/product-quality-checks.yml @@ -148,6 +148,7 @@ jobs: displayName: "Generate ThirdPartyNotices (CG)" inputs: outputfile: $(Build.SourcesDirectory)/ThirdPartyNotices.generated.txt + retryCountOnTaskFailure: 3 continueOnError: true # =========================================================================