Skip to content

Commit f9efdf4

Browse files
Package artifact path (#15512)
* Changes to create artifact in package directory
1 parent 919e856 commit f9efdf4

File tree

5 files changed

+41
-74
lines changed

5 files changed

+41
-74
lines changed

eng/pipelines/templates/stages/archetype-js-release.yml

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ parameters:
55
DependsOn: Build
66
Registry: 'https://registry.npmjs.org/'
77
PrivateRegistry: 'https://pkgs.dev.azure.com/azure-sdk/internal/_packaging/azure-sdk-for-js-pr/npm/registry/'
8-
DocArtifact: 'documentation'
98
TargetDocRepoOwner: ''
109
TargetDocRepoName: ''
1110
ServiceDirectory: ''
@@ -43,18 +42,13 @@ stages:
4342
PackageName: ${{artifact.name}}
4443
ServiceName: ${{parameters.ServiceDirectory}}
4544
ForRelease: true
46-
- template: /eng/pipelines/templates/steps/stage-artifacts.yml
47-
parameters:
48-
SourceFolder: ${{parameters.ArtifactName}}
49-
TargetFolder: ${{artifact.safeName}}
50-
PackageName: ${{artifact.name}}-[0-9]*.[0-9]*.[0-9]*.tgz
5145
- pwsh: |
52-
Get-ChildItem -Recurse $(Pipeline.Workspace)/${{artifact.safeName}}
46+
Get-ChildItem -Recurse ${{parameters.ArtifactName}}/${{artifact.name}}
5347
workingDirectory: $(Pipeline.Workspace)
5448
displayName: Output Visible Artifacts
5549
- template: /eng/common/pipelines/templates/steps/create-tags-and-git-release.yml
5650
parameters:
57-
ArtifactLocation: $(Pipeline.Workspace)/${{artifact.safeName}}
51+
ArtifactLocation: $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}
5852
PackageRepository: Npm
5953
ReleaseSha: $(Build.SourceVersion)
6054
RepoId: Azure/azure-sdk-for-js
@@ -77,7 +71,7 @@ stages:
7771
steps:
7872
- checkout: self
7973
- script: |
80-
export DETECTED_PACKAGE_NAME=`ls $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}-[0-9]*[0-9]*.[0-9]*.tgz`
74+
export DETECTED_PACKAGE_NAME=`ls $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}/*.tgz`
8175
echo "##vso[task.setvariable variable=Package.Archive]$DETECTED_PACKAGE_NAME"
8276
displayName: Detecting package archive
8377
@@ -124,13 +118,8 @@ stages:
124118
deploy:
125119
steps:
126120
- checkout: self
127-
- template: /eng/pipelines/templates/steps/stage-artifacts.yml
128-
parameters:
129-
SourceFolder: ${{parameters.ArtifactName}}
130-
TargetFolder: ${{artifact.safeName}}
131-
PackageName: ${{artifact.name}}-[0-9]*.[0-9]*.[0-9]*.tgz
132121
- pwsh: |
133-
Get-ChildItem -Recurse $(Pipeline.Workspace)/${{artifact.safeName}}
122+
Get-ChildItem -Recurse ${{parameters.ArtifactName}}/${{artifact.name}}
134123
workingDirectory: $(Pipeline.Workspace)
135124
displayName: Output Visible Artifacts
136125
- template: /eng/common/pipelines/templates/steps/get-pr-owners.yml
@@ -139,7 +128,7 @@ stages:
139128
ServiceDirectory: ${{parameters.ServiceDirectory}}
140129
- template: /eng/common/pipelines/templates/steps/docs-metadata-release.yml
141130
parameters:
142-
ArtifactLocation: $(Pipeline.Workspace)/${{artifact.safeName}}
131+
ArtifactLocation: $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}
143132
PackageRepository: NPM
144133
ReleaseSha: $(Build.SourceVersion)
145134
RepoId: Azure/azure-sdk-for-js
@@ -171,30 +160,16 @@ stages:
171160
steps:
172161
- checkout: self
173162
- pwsh: |
174-
$adjustedName = "${{artifact.name}}" -replace "^azure-", ""
175-
Write-Host "##vso[task.setvariable variable=Documentation.Zip]$adjustedName"
176-
displayName: Set Documentation File Name
177-
- template: /eng/pipelines/templates/steps/stage-artifacts.yml
178-
parameters:
179-
SourceFolder: ${{parameters.ArtifactName}}
180-
TargetFolder: ${{artifact.safeName}}
181-
PackageName: ${{artifact.name}}-[0-9]*.[0-9]*.[0-9]*.tgz
182-
- template: /eng/pipelines/templates/steps/stage-artifacts.yml
183-
parameters:
184-
SourceFolder: ${{parameters.DocArtifact}}
185-
TargetFolder: ${{artifact.safeName}}/${{parameters.DocArtifact}}
186-
PackageName: $(Documentation.Zip).zip
187-
- pwsh: |
188-
Get-ChildItem -Recurse $(Pipeline.Workspace)/${{artifact.safeName}}
163+
Get-ChildItem -Recurse ${{parameters.ArtifactName}}/${{artifact.name}}
189164
workingDirectory: $(Pipeline.Workspace)
190165
displayName: Output Visible Artifacts
191166
- template: /eng/common/pipelines/templates/steps/publish-blobs.yml
192167
parameters:
193-
FolderForUpload: '$(Pipeline.Workspace)/${{artifact.safeName}}'
168+
FolderForUpload: '$(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}'
194169
BlobSASKey: '$(azure-sdk-docs-prod-sas)'
195170
BlobName: '$(azure-sdk-docs-prod-blob-name)'
196171
TargetLanguage: 'javascript'
197-
ArtifactLocation: '$(Pipeline.Workspace)/${{artifact.safeName}}'
172+
ArtifactLocation: '$(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}'
198173
# we override the regular script path because we have cloned the build tools repo as a separate artifact.
199174
ScriptPath: 'eng/common/scripts/copy-docs-to-blobstorage.ps1'
200175

@@ -260,7 +235,7 @@ stages:
260235
- ${{ each artifact in parameters.Artifacts }}:
261236
- ${{if ne(artifact.skipPublishDevFeed, 'true')}}:
262237
- pwsh: |
263-
$detectedPackageName=Get-ChildItem $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}-[0-9]*.[0-9]*.[0-9]*-alpha*.tgz
238+
$detectedPackageName=Get-ChildItem $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}/*.tgz
264239
echo "##vso[task.setvariable variable=Package.Archive]$detectedPackageName"
265240
if ('$(Build.Repository.Name)' -eq 'Azure/azure-sdk-for-js') {
266241
$npmToken="$(azure-sdk-npm-token)"

eng/pipelines/templates/steps/build.yml

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,28 +60,25 @@ steps:
6060
Artifacts: ${{ parameters.Artifacts }}
6161
ArtifactPath: $(Build.SourcesDirectory)/sdk/${{ parameters.ServiceDirectory }}
6262

63-
# It's important for performance to pass "sdk" as "sourceFolder" rather than as a prefix in "contents".
64-
# The task first enumerates all files under "sourceFolder", then matches them against the "contents" pattern.
65-
- task: CopyFiles@2
66-
inputs:
67-
sourceFolder: sdk
68-
contents: |
69-
**/$(coalesceResultFilter)/*.tgz
70-
**/$(coalesceResultFilter)/browser/*.zip
71-
targetFolder: $(Build.ArtifactStagingDirectory)
72-
flattenFolders: true
73-
displayName: "Copy packages"
74-
75-
- template: /eng/common/pipelines/templates/steps/publish-artifact.yml
76-
parameters:
77-
ArtifactPath: '$(Build.ArtifactStagingDirectory)'
78-
ArtifactName: 'packages'
79-
8063
- template: ../steps/generate-doc.yml
8164
parameters:
8265
ServiceDirectory: ${{parameters.ServiceDirectory}}
8366

67+
- pwsh: |
68+
$artifacts = '${{ convertToJson(parameters.Artifacts) }}' | ConvertFrom-Json
69+
foreach ($artifact in $artifacts)
70+
{
71+
$artifactName = $artifact.name
72+
Write-Host "Copying $artifactName artifacts to $(Build.ArtifactStagingDirectory)/$artifactName"
73+
New-Item -Type Directory -Name $artifactName -Path $(Build.ArtifactStagingDirectory) > $null
74+
Copy-Item sdk/${{parameters.ServiceDirectory}}/**/$artifactName-*.tgz $(Build.ArtifactStagingDirectory)/$artifactName
75+
Copy-Item sdk/${{parameters.ServiceDirectory}}/**/browser/$artifactName-*.zip $(Build.ArtifactStagingDirectory)/$artifactName
76+
New-Item -Type Directory -Name documentation -Path $(Build.ArtifactStagingDirectory)/$artifactName > $null
77+
Copy-Item $(Build.SourcesDirectory)/docGen/$artifactName.zip $(Build.ArtifactStagingDirectory)/$artifactName/documentation
78+
}
79+
displayName: 'Copy Packages'
80+
8481
- template: /eng/common/pipelines/templates/steps/publish-artifact.yml
8582
parameters:
86-
ArtifactPath: '$(Build.ArtifactStagingDirectory)/Documentation'
87-
ArtifactName: 'documentation'
83+
ArtifactPath: '$(Build.ArtifactStagingDirectory)'
84+
ArtifactName: 'packages'

eng/pipelines/templates/steps/generate-doc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ steps:
1616
displayName: "Run Typedoc Docs"
1717
1818
- pwsh: |
19-
$(Build.SourcesDirectory)/eng/tools/compress-subfolders.ps1 "$(Build.SourcesDirectory)/docGen" "$(Build.ArtifactStagingDirectory)/Documentation"
19+
$(Build.SourcesDirectory)/eng/tools/compress-subfolders.ps1 "$(Build.SourcesDirectory)/docGen" "$(Build.SourcesDirectory)/docGen"
2020
displayName: "Generate Typedoc Docs"

eng/pipelines/templates/steps/stage-artifacts.yml

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

eng/tools/generate-doc/index.js

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const getChecks = async (dir, checks) => {
3131
checks.isClient = true;
3232
}
3333
checks.version = settings["version"];
34+
checks.packageName = settings["name"];
3435
}
3536
if (fileName == "typedoc.json") {
3637
checks.typedocPresent = true;
@@ -99,6 +100,7 @@ const executeTypedoc = async (exclusionList, inclusionList, generateIndexWithTem
99100
typedocPresent: false,
100101
isClient: false,
101102
version: "0",
103+
packageName: ""
102104
};
103105
eachPackagePath = path.join(eachServicePath, eachPackage);
104106
pathToAssets = eachPackagePath + "/assets";
@@ -108,23 +110,26 @@ const executeTypedoc = async (exclusionList, inclusionList, generateIndexWithTem
108110

109111
console.log(
110112
"checks after walk: checks.isPrivate = " +
111-
checks.isPrivate +
112-
", checks.srcPresent = " +
113-
checks.srcPresent +
114-
", typedocPresent = " +
115-
checks.typedocPresent +
116-
", isClient = " +
117-
checks.isClient +
118-
", version = " +
119-
checks.version
113+
checks.isPrivate +
114+
", checks.srcPresent = " +
115+
checks.srcPresent +
116+
", typedocPresent = " +
117+
checks.typedocPresent +
118+
", isClient = " +
119+
checks.isClient +
120+
", version = " +
121+
checks.version +
122+
", packageName = " +
123+
checks.packageName
120124
);
121125
console.log("Path: " + eachPackagePath);
122126
if (!checks.isPrivate) {
123127
if ((argv.clientOnly && checks.isClient) || !argv.clientOnly) {
124128
if (checks.srcPresent) {
129+
var artifactName = checks.packageName.replace("@", "").replace("/", "-");
125130
if (argv.docGenOutput === "dg") {
126131
docOutputFolder =
127-
"--out ../../../docGen/" + eachPackage + "/" + checks.version + " ./src";
132+
"--out ../../../docGen/" + artifactName + "/" + checks.version + " ./src";
128133
}
129134

130135
let typedocProcess;

0 commit comments

Comments
 (0)