Skip to content

Conversation

@alexvy86
Copy link
Contributor

@alexvy86 alexvy86 commented Dec 26, 2025

Description

For a while, the runs of the stress tests pipeline in the LTS branch have been broken for different reasons. This PR addresses them all so we can continue running that pipeline for the LTS branch.

Main changes:

  • Bring in the template file that configures our centralized ADO feed to download dependencies.
  • Replace the Npm tasks with Bash tasks that use pnpm. Npm tasks don't respect the configuration done by the previous bullet point.
  • Fix path for package in the artifact (we replaced scoped/unscoped with tarballs in build-tools a while back).
  • Pin the dependency on an internal package (oteljs) to a version that doesn't cause issues in our LTS branch, where ESM vs CJS is not cleaned up like in main.
  • Update Node from 20.15.1 to 20.19.0 to match main (and we know it fixes a couple of issues with module resolution).

Fixes AB#54754 and AB#54755, plus some other issues hiding behind those.

Reviewer Guidance

The review process is outlined on this wiki page.

Run (msft internal) that shows a successful run of one of the stages with the changes in this PR.

@alexvy86 alexvy86 requested a review from a team as a code owner December 26, 2025 21:08
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note for reviewers: this whole file is a copy of the one we use today in the main branch to set up a global (to the pipeline run) .npmrc file with all the necessary authentication for the consolidated internal feed where all out dependencies can (should) be retrieved from.

customRegistry: 'useNpmrc'
version: 20.19.0

- template: /tools/pipelines/templates/include-install-pnpm.yml@self
Copy link
Contributor Author

@alexvy86 alexvy86 Dec 26, 2025

Choose a reason for hiding this comment

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

Note for reviewers: moved to bash tasks that use pnpm instead of npm tasks everywhere because npm ones don't respect the global .npmrc file we set up earlier.

Comment on lines -172 to -185
echo Initialize package
npm init --yes
echo Generating .npmrc
echo "registry=https://registry.npmjs.org" >> ./.npmrc
echo "always-auth=false" >> ./.npmrc
echo "@fluidframework:registry=${{ variables.feed }}" >> ./.npmrc
echo "@fluid-experimental:registry=${{ variables.feed }}" >> ./.npmrc
echo "@fluid-internal:registry=${{ variables.feed }}" >> ./.npmrc
echo "@ff-internal:registry=https://pkgs.dev.azure.com/fluidframework/internal/_packaging/build/npm/registry/" >> ./.npmrc
echo "@microsoft:registry=https://pkgs.dev.azure.com/fluidframework/internal/_packaging/office/npm/registry/" >> ./.npmrc
echo "always-auth=true" >> ./.npmrc
cat .npmrc
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note for reviewers: an improved version of this is now done in the new template yaml file added in this PR.

- task: npmAuthenticate@0
displayName: 'npm authenticate (internal feed)'
# Pin oteljs to a version that doesn't depend on packages that cause issues in our LTS branch
Copy link
Contributor

Choose a reason for hiding this comment

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

If we see further issues, I think it would be worth converting this template to use the same approach as main (separate repo which manages the lockfile for the test environment we install packages in). We can create an lts branch there which manages deps for LTS to avoid pinning in main.

This is fine for now though.

@alexvy86 alexvy86 enabled auto-merge (squash) January 6, 2026 17:10
@alexvy86 alexvy86 merged commit a35179e into lts Jan 8, 2026
13 checks passed
@alexvy86 alexvy86 deleted the test/alejandrovi/fix-lts-stress-tests branch January 8, 2026 16:54
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.

4 participants