Skip to content

Fetch Host JIT trace files from functions-release at build time#11722

Open
Francisco-Gamino wants to merge 5 commits intodevfrom
Francisco-Gamino/fetch-jittrace-from-functions-release-2
Open

Fetch Host JIT trace files from functions-release at build time#11722
Francisco-Gamino wants to merge 5 commits intodevfrom
Francisco-Gamino/fetch-jittrace-from-functions-release-2

Conversation

@Francisco-Gamino
Copy link
Copy Markdown
Contributor

Issue describing the changes in this PR

The JIT trace files in PreJIT/ have been moved to functions-release (artifacts/Host/JitTrace/dev/).

Changes

  • Delete coldstart.jittrace and linux.coldstart.jittrace from src/WebJobs.Script.WebHost/PreJIT/
  • Add Host JIT trace files coldstart.jittrace and linux.coldstart.jittrace before dotnet publish
  • Log release_notes.md content from the JIT trace directory
  • Fail the pipeline if JIT trace files are not found

Unchanged

  • .csproj glob (PreJIT\*.jittrace), merge-jittrace.yml, .jitmarker, JitTraceRuntime.cs

Testing

  • Pipeline run succeeded with checkout + copy (validated on host.coldstart def 1286)
  • Nightly run (createJitTrace=false) completes successfully
  • Manual run with createJitTrace=true produces valid merged JIT trace artifacts

Pull request checklist

IMPORTANT: Currently, changes must be backported to the in-proc branch to be included in Core Tools and non-Flex deployments.

  • Backporting to the in-proc branch is not required
    • Otherwise: Link to backporting PR
  • My changes do not require documentation changes
    • Otherwise: Documentation issue linked to PR
  • My changes should not be added to the release notes for the next release
    • Otherwise: I've added my notes to release_notes.md
  • My changes do not need to be backported to a previous version
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • My changes do not require diagnostic events changes
    • Otherwise: I have added/updated all related diagnostic events and their documentation (Documentation issue linked to PR)
  • I have added all required tests (Unit tests, E2E tests)

Additional information

Additional PR information

…ld time

The JIT trace files in src/WebJobs.Script.WebHost/PreJIT/ were stale
because the canonical source of truth moved to the functions-release
repo (artifacts/Host/JitTrace/dev/). This change:

- Deletes coldstart.jittrace and linux.coldstart.jittrace from PreJIT/
- Adds functions-release as an ADO repository resource in host.coldstart.yml
- Adds checkout + copy steps in run-coldstart.yml to place the latest
  JIT trace files in PreJIT/ before dotnet publish
- Extracts the repo path to jitTraceRepoPath variable in coldstart.yml
- No changes to the .csproj glob (PreJIT\*.jittrace) or merge-jittrace.yml
The 1ES Pipeline Template requires non-self repositories used in
multi-checkout to be declared in sdl.sourceRepositoriesToScan. Since
functions-release is only used to copy JIT trace files, exclude it
from SDL source analysis.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the coldstart pipeline to source Host PreJIT .jittrace files from the functions-release repo at build time instead of keeping them in this repo, ensuring the host publish output still contains the required trace files.

Changes:

  • Added a pipeline variable for the functions-release JIT trace directory path.
  • Added multi-repo checkout and a PowerShell step to copy required .jittrace files into src/WebJobs.Script.WebHost/PreJIT/, failing the job if missing.
  • Added functions-release as a pipeline resource and excluded it from SDL source scanning; logs release_notes.md content from the trace directory.

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated 4 comments.

File Description
eng/ci/templates/variables/coldstart.yml Introduces a variable pointing to the functions-release JIT trace directory.
eng/ci/templates/official/jobs/run-coldstart.yml Adds repo checkouts + copy/validation step to bring .jittrace files into the publish input.
eng/ci/host.coldstart.yml Adds functions-release as a repository resource and adjusts SDL scanning settings.

Comment thread eng/ci/templates/official/jobs/run-coldstart.yml Outdated
Comment thread eng/ci/templates/variables/coldstart.yml Outdated
Comment thread eng/ci/templates/official/jobs/run-coldstart.yml Outdated
Comment thread eng/ci/host.coldstart.yml
- Remove leading / from jitTraceRepoPath variable
- Use Join-Path for cross-platform path construction
- Prefix release notes lines to prevent ##vso log command injection
@Francisco-Gamino Francisco-Gamino requested a review from kshyju April 22, 2026 00:02
@@ -1,2721 +0,0 @@
[Azure.Core]Azure.Core.AppContextSwitchHelper.GetConfigValue(string,string)~Azure.Core.AppContextSwitchHelper,Azure.Core~2~0~GetConfigValue
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a warning log in HostWarmupMiddleware so that anyone running locally and simulating placeholder mode is notified when the file is missing? We should also update the local host specialization wiki page to explain where to download the file for local runs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants