Skip to content

Commit 3fb6857

Browse files
authored
Sync main pipeline changes to 0.81-stable branch (#16413)
1 parent 733d7e9 commit 3fb6857

55 files changed

Lines changed: 11449 additions & 529 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.ado/README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ setup and the network-isolation workarounds.
1313
| CI | `ci-pipeline.yml` | `ISS` | `Office.Official` | signed Official build; `trigger` branch filters and a weekly heartbeat `schedule` are defined in YAML |
1414
| PR | `pr-pipeline.yml` | public (`ms`) | `1ES.Unofficial` | validation build for GitHub PRs |
1515
| Release | `release-pipeline.yml` | `ISS` | `Office.Official` | triggered by CI completion; publishes packages and symbols |
16-
| Feed warm-up | `warm-feed-cache-pipeline.yml` | `ISS` | `Office.Unofficial` | scheduled; keeps `ms/react-native-public` populated for anonymous PR restores |
1716

1817
CI and PR share all build/test/pack logic through `build-template.yml`; the
1918
`buildEnvironment` parameter (`Continuous` vs `PullRequest`) gates the
@@ -71,9 +70,9 @@ otherwise hide:
7170
agent image.
7271

7372
Public PR builds read this feed **anonymously**, so they can only restore versions
74-
an authenticated identity has already saved. `warm-feed-cache-pipeline.yml` (script:
75-
`vnext/Scripts/Warm-RnwFeedCache.ps1`) runs on a schedule to pre-populate the npm
76-
and NuGet dependency closures and keep those anonymous restores working.
73+
an authenticated identity has already saved. A scheduled feed warm-up (maintained on
74+
`main`, branch-agnostic) pre-populates the npm and NuGet dependency closures on the
75+
feed and keeps those anonymous restores working.
7776

7877
## SDL and Component Governance
7978

.ado/ci-pipeline.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ name: 0.0.$(Date:yyMM.d)$(Rev:rrr)
88
trigger:
99
branches:
1010
include:
11+
# Supported branches
1112
- main
1213
- '0.81-stable'
13-
- '0.82-stable'
1414
- '0.83-stable'
1515
- '0.84-stable'
1616
- '0.85-stable'

.ado/pr-pipeline.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ name: $(Date:yyyyMMdd).$(Rev:r)
88
trigger: none
99

1010
pr:
11+
# Supported branches
1112
- main
12-
- master
13-
- "*-stable"
13+
- '0.81-stable'
14+
- '0.83-stable'
15+
- '0.84-stable'
16+
- '0.85-stable'
17+
- '0.86-stable'
18+
- '0.87-stable'
1419

1520
variables:
1621
- group: platform-override-zero-permission-token

.ado/prepare-release-bot.yml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
name: $(Date:yyyyMMdd).$(Rev:r)
22

3-
# Triggers are configured in the ADO pipeline UI:
4-
# - CI triggers on pushes to main and *-stable branches
5-
# - Scheduled triggers for daily runs
6-
# - Manual runs with optional branch override
7-
trigger: none
3+
# CI trigger on the supported branches; also queued manually (targetBranch parameter).
4+
trigger:
5+
branches:
6+
include:
7+
# Supported branches
8+
- main
9+
- '0.81-stable'
10+
- '0.83-stable'
11+
- '0.84-stable'
12+
- '0.85-stable'
13+
- '0.86-stable'
14+
- '0.87-stable'
815
pr: none
916

1017
parameters:
@@ -13,12 +20,15 @@ parameters:
1320
type: string
1421
default: (source branch)
1522
values:
23+
# Supported branches
1624
- (source branch)
1725
- main
18-
- 0.82-stable
1926
- 0.81-stable
20-
- 0.80-stable
21-
- 0.74-stable
27+
- 0.83-stable
28+
- 0.84-stable
29+
- 0.85-stable
30+
- 0.86-stable
31+
- 0.87-stable
2232

2333
jobs:
2434
- job: PrepareRelease

.ado/release-pipeline.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ resources:
4242
trigger:
4343
branches:
4444
include:
45+
# Supported branches
4546
- main
4647
- '0.81-stable'
47-
- '0.82-stable'
4848
- '0.83-stable'
4949
- '0.84-stable'
5050
- '0.85-stable'

.ado/scripts/npmPack.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
const fs = require('fs');
1919
const path = require('path');
20-
const { execSync } = require('child_process');
20+
const { execSync, execFileSync } = require('child_process');
2121
const { parseArgs } = require('util');
2222

2323
// ANSI color codes
@@ -219,12 +219,17 @@ function isPrivatePackage(packageJsonPath) {
219219
* @returns {boolean} True if the package version is already published
220220
*/
221221
function isPublishedOnNpm(packageName, version, registry) {
222-
const registryArg = registry ? ` --registry ${registry}` : '';
222+
// Shell-free npm invocation (node + its CLI, values as argv) so a caller-controlled
223+
// registry/package/version can't inject; npm's Windows .cmd shim needs a shell otherwise.
224+
const npmCli = path.join(path.dirname(process.execPath), 'node_modules', 'npm', 'bin', 'npm-cli.js');
225+
const args = [npmCli, 'view', `${packageName}@${version}`, 'version'];
226+
if (registry) {
227+
args.push('--registry', registry);
228+
}
223229
try {
224-
// Use npm view to check if the specific version exists
225-
execSync(`npm view ${packageName}@${version} version${registryArg}`, {
230+
execFileSync(process.execPath, args, {
226231
encoding: 'utf8',
227-
stdio: ['pipe', 'pipe', 'pipe']
232+
stdio: ['pipe', 'pipe', 'pipe'],
228233
});
229234
return true;
230235
} catch (error) {

.ado/warm-feed-cache-pipeline.yml

Lines changed: 0 additions & 81 deletions
This file was deleted.

.yarnrc.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,16 @@ enableScripts: false
33
yarnPath: .yarn/releases/yarn-4.13.0.cjs
44

55
nodeLinker: node-modules
6+
7+
# Don't pin a version younger than the ms/react-native-public feed's 7-day upstream
8+
# quarantine (8 = 7 + 1d margin), so yarn.lock only holds versions the feed can serve.
9+
# Exempt our first-party scopes, plus the upstream react-native family that integrate-rn
10+
# pins to exact nightlies (the age gate rejects even exact versions).
11+
npmMinimalAgeGate: "8d"
12+
npmPreapprovedPackages:
13+
- "react-native-windows"
14+
- "@react-native-windows/*"
15+
- "@rnw-scripts/*"
16+
- "@office-iss/*"
17+
- "react-native"
18+
- "@react-native/*"
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "Retain license, README, and docs in vendored folly, fmt, and fast-float, and update the example Metro config for create-react-native-library 0.63",
4+
"packageName": "react-native-windows",
5+
"email": "vmorozov@microsoft.com",
6+
"dependentChangeType": "patch"
7+
}

0 commit comments

Comments
 (0)