@@ -29,6 +29,57 @@ extends:
2929 - stage : Release
3030 displayName : Publish artifacts
3131 jobs :
32+ - job : PushNpm
33+ displayName : npmjs.com - Publish npm packages
34+ variables :
35+ - group : RNW Secrets
36+ timeoutInMinutes : 0
37+ templateContext :
38+ inputs :
39+ - input : pipelineArtifact
40+ pipeline : ' Publish'
41+ artifactName : ' NpmPackedTarballs'
42+ targetPath : ' $(Pipeline.Workspace)/published-packages'
43+ - input : pipelineArtifact
44+ pipeline : ' Publish'
45+ artifactName : ' VersionEnvVars'
46+ targetPath : ' $(Pipeline.Workspace)/VersionEnvVars'
47+ steps :
48+ - checkout : self
49+ clean : false
50+ - task : CmdLine@2
51+ displayName : Apply version variables
52+ inputs :
53+ script : node $(Pipeline.Workspace)/VersionEnvVars/versionEnvVars.js
54+ - script : dir /s "$(Pipeline.Workspace)\published-packages"
55+ displayName : Show npm packages before cleanup
56+ - script : node .ado/scripts/npmPack.js --no-pack --check-npm --no-color "$(Pipeline.Workspace)\published-packages"
57+ displayName : Remove already published packages
58+ - script : dir /s "$(Pipeline.Workspace)\published-packages"
59+ displayName : Show npm packages after cleanup
60+ - powershell : |
61+ $tgzFiles = Get-ChildItem -Path "$(Pipeline.Workspace)\published-packages" -Filter "*.tgz" -Recurse
62+ $tgzCount = $tgzFiles.Count
63+ Write-Host "Found $tgzCount .tgz files"
64+ Write-Host "##vso[task.setvariable variable=HasPackagesToPublish]$($tgzCount -gt 0)"
65+ displayName: Check if there are packages to publish
66+ - task : ' SFP.release-tasks.custom-build-release-task.EsrpRelease@10'
67+ displayName : ' ESRP Release to npmjs.com'
68+ condition : and(succeeded(), ne(variables['NpmDistTag'], ''), eq(variables['HasPackagesToPublish'], 'true'))
69+ inputs :
70+ connectedservicename : ' ESRP-CodeSigning-OGX-JSHost-RNW'
71+ usemanagedidentity : false
72+ keyvaultname : ' OGX-JSHost-KV'
73+ authcertname : ' OGX-JSHost-Auth4'
74+ signcertname : ' OGX-JSHost-Sign3'
75+ clientid : ' 0a35e01f-eadf-420a-a2bf-def002ba898d'
76+ domaintenantid : ' cdc5aeea-15c5-4db6-b079-fcadd2505dc2'
77+ contenttype : npm
78+ folderlocation : ' $(Pipeline.Workspace)\published-packages'
79+ productstate : ' $(NpmDistTag)'
80+ owners : ' vmorozov@microsoft.com'
81+ approvers : ' khosany@microsoft.com'
82+
3283 - job : PushPrivateAdo
3384 displayName : ADO - react-native
3485 timeoutInMinutes : 0
0 commit comments