Skip to content

Commit 4ae3555

Browse files
authored
Merge branch 'main' into copilot/fix-45594
2 parents 0e192f9 + bb5600a commit 4ae3555

File tree

392 files changed

+8325
-6433
lines changed

Some content is hidden

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

392 files changed

+8325
-6433
lines changed

common/perf-test-core/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,19 @@
101101
<dependency>
102102
<groupId>org.junit.jupiter</groupId>
103103
<artifactId>junit-jupiter-api</artifactId>
104-
<version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-api;external_dependency} -->
104+
<version>5.13.1</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-api;external_dependency} -->
105105
<scope>test</scope>
106106
</dependency>
107107
<dependency>
108108
<groupId>org.junit.jupiter</groupId>
109109
<artifactId>junit-jupiter-engine</artifactId>
110-
<version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-engine;external_dependency} -->
110+
<version>5.13.1</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-engine;external_dependency} -->
111111
<scope>test</scope>
112112
</dependency>
113113
<dependency>
114114
<groupId>org.junit.jupiter</groupId>
115115
<artifactId>junit-jupiter-params</artifactId>
116-
<version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-params;external_dependency} -->
116+
<version>5.13.1</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-params;external_dependency} -->
117117
<scope>test</scope>
118118
</dependency>
119119
</dependencies>

eng/automation/generation_data.yml

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

eng/code-quality-reports/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,21 +98,21 @@
9898
<dependency>
9999
<groupId>org.junit.jupiter</groupId>
100100
<artifactId>junit-jupiter-api</artifactId>
101-
<version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-api;external_dependency} -->
101+
<version>5.13.1</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-api;external_dependency} -->
102102
<scope>test</scope>
103103
</dependency>
104104

105105
<dependency>
106106
<groupId>org.junit.jupiter</groupId>
107107
<artifactId>junit-jupiter-params</artifactId>
108-
<version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-params;external_dependency} -->
108+
<version>5.13.1</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-params;external_dependency} -->
109109
<scope>test</scope>
110110
</dependency>
111111

112112
<dependency>
113113
<groupId>org.junit.jupiter</groupId>
114114
<artifactId>junit-jupiter-engine</artifactId>
115-
<version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-engine;external_dependency} -->
115+
<version>5.13.1</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-engine;external_dependency} -->
116116
<scope>test</scope>
117117
</dependency>
118118
</dependencies>

eng/code-quality-reports/src/main/resources/revapi/revapi.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@
177177
{
178178
"regex": true,
179179
"code": "java\\.method\\.addedToInterface",
180-
"new": "method .* com\\.azure\\.resourcemanager\\..*",
181-
"justification": "resourcemanager interfaces are allowed to add methods."
180+
"new": "method .* com\\.azure\\.resourcemanager\\.(?!appplatform|appservice|authorization|cdn|compute|containerinstance|containerregistry|containerservice|cosmos|dns|eventhubs|keyvault|monitor|msi|network|privatedns|redis|resources|search|servicebus|sql|storage|trafficmanager).*",
181+
"justification": "resourcemanager interfaces are allowed to add methods, except for the 24 specific premium libraries."
182182
},
183183
{
184184
"regex": true,

eng/common/pipelines/codeowners-linter.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ stages:
2727
- job: Run
2828
timeoutInMinutes: 120
2929
pool:
30-
name: azsdk-pool-mms-ubuntu-2204-general
31-
vmImage: ubuntu-22.04
30+
name: azsdk-pool
31+
demands: ImageOverride -equals ubuntu-24.04
3232

3333
variables:
3434
CodeownersLinterVersion: '1.0.0-dev.20240926.2'

eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ parameters:
2727
default: []
2828
- name: Pool
2929
type: string
30-
default: azsdk-pool-mms-ubuntu-2204-general
30+
default: azsdk-pool
3131
- name: OsVmImage
3232
type: string
33-
default: ubuntu-22.04
33+
default: ubuntu-24.04
3434
# This parameter is only necessary if there are multiple invocations of this template within the SAME STAGE.
3535
# When that occurs, provide a name other than the default value.
3636
- name: GenerateJobName

eng/common/pipelines/templates/jobs/docindex.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
jobs:
22
- job: CreateDocIndex
33
pool:
4-
name: azsdk-pool-mms-win-2022-general
4+
name: azsdk-pool
5+
demands: ImageOverride -equals windows-2022
56
steps:
67
- task: UsePythonVersion@0
78
displayName: 'Use Python 3.11'
@@ -36,14 +37,14 @@ jobs:
3637
Copy-Item -Path $(Build.SourcesDirectory)/eng/* -Destination ./ -Recurse -Force
3738
echo "##vso[task.setvariable variable=toolPath]$(Build.BinariesDirectory)"
3839
workingDirectory: $(Build.BinariesDirectory)
39-
displayName: Move eng/common to Tool Directory
40+
displayName: Move eng/common to Tool Directory
4041
4142
- task: PublishPipelineArtifact@0
4243
condition: succeeded()
4344
inputs:
4445
artifactName: "Doc.Index"
4546
targetPath: $(Build.ArtifactStagingDirectory)/docfx_project/_site
46-
47+
4748
- pwsh: |
4849
git checkout -b gh-pages-local --track origin/gh-pages-root -f
4950
workingDirectory: $(Build.SourcesDirectory)
Lines changed: 69 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
parameters:
2-
Tag: 'latest'
2+
Tag: 'auto'
33
ArtifactName: 'packages'
4+
ArtifactSubPath: ''
5+
DeploymentName: 'PublishPackage'
46
DependsOn: []
57
Environment: 'package-publish'
68
Registry: 'https://registry.npmjs.org/'
9+
Pool: # hardcoding the pool and image name because deployment jobs do not support variable expansion in pool names
10+
name: azsdk-pool
11+
image: ubuntu-24.04
12+
os: linux
13+
CustomCondition: succeeded()
14+
FailOnMissingPackages: true
715

816
jobs:
9-
- deployment: PublishPackage_${{ parameters.ArtifactName }}
10-
displayName: 'Publish ${{ parameters.ArtifactName }} to ${{ parameters.Registry }}'
17+
- deployment: ${{ parameters.DeploymentName }}
18+
displayName: 'Publish ${{ parameters.ArtifactName }} to ${{ parameters.Registry }}'
19+
condition: ${{ parameters.CustomCondition }}
1120
environment: ${{ parameters.Environment }}
1221
dependsOn: ${{ parameters.DependsOn }}
1322
variables:
1423
- name: ArtifactPath
15-
value: $(Pipeline.Workspace)/${{ parameters.ArtifactName }}
24+
value: $(Pipeline.Workspace)/${{ parameters.ArtifactName }}/${{ parameters.ArtifactSubPath }}
1625

1726
templateContext:
1827
type: releaseJob
@@ -21,26 +30,48 @@ jobs:
2130
- input: pipelineArtifact
2231
artifactName: ${{ parameters.ArtifactName }}
2332
itemPattern: '**/*.tgz'
24-
targetPath: $(ArtifactPath)
33+
targetPath: $(Pipeline.Workspace)/${{ parameters.ArtifactName }}/
2534

26-
pool:
27-
name: azsdk-pool
28-
image: ubuntu-24.04
29-
os: linux
35+
pool: ${{ parameters.Pool }}
3036

3137
strategy:
3238
runOnce:
3339
deploy:
3440
steps:
3541
- pwsh: |
42+
$containsBeta = $false
43+
$containsPackages = $false
3644
foreach ($package in (dir $(ArtifactPath) *.tgz -Recurse)) {
37-
Write-Host "Publishing $package to ${{ parameters.Registry }} with tag ${{ parameters.Tag }}"
45+
if ($package.Name -match "[\d\.]+-[a-zA-Z]+") { $containsBeta = $true }
46+
Write-Host "Publishing $package to ${{ parameters.Registry }}"
47+
$containsPackages = $true
48+
}
49+
if (!$containsPackages) {
50+
Write-Host "##vso[task.setvariable variable=SkipPublishing]true"
51+
if ("${{ parameters.FailOnMissingPackages }}" -eq 'true') {
52+
Write-Error "No packages found to publish, but FailOnMissingPackages is set to true. Failing the job."
53+
exit 1
54+
}
55+
else {
56+
Write-Host "No packages found to publish in $(ArtifactPath), so skipping publishing."
57+
exit 0
58+
}
3859
}
39-
displayName: 'Display packages to be published'
60+
61+
$tag = '${{ parameters.Tag }}'
62+
if ($tag -eq '' -or $tag -eq 'auto') {
63+
$tag = 'latest'
64+
# If the package is prerelease publish it under 'beta' tag
65+
if ($containsBeta) { $tag = 'beta'}
66+
}
67+
Write-Host "##vso[task.setvariable variable=TagName]$tag"
68+
Write-Host "Publishing packages with tag: $tag"
69+
displayName: 'Packages to be published'
4070
4171
- ${{ if eq(parameters.Registry, 'https://registry.npmjs.org/') }}:
4272
- task: EsrpRelease@9
4373
displayName: 'Publish ${{ parameters.ArtifactName }} via ESRP'
74+
condition: and(succeeded(), ne(variables['SkipPublishing'], 'true'))
4475
inputs:
4576
ConnectedServiceName: 'Azure SDK PME Managed Identity'
4677
ClientId: '5f81938c-2544-4f1f-9251-dd9de5b8a81b'
@@ -55,23 +86,47 @@ jobs:
5586
Approvers: ${{ coalesce(variables['Build.RequestedForEmail'], 'azuresdk@microsoft.com') }}
5687
ServiceEndpointUrl: 'https://api.esrp.microsoft.com'
5788
MainPublisher: 'ESRPRELPACMANTEST'
58-
productstate: ${{ parameters.Tag }}
89+
productstate: $(TagName)
90+
91+
- pwsh: |
92+
foreach ($package in (dir $(ArtifactPath) *.tgz -Recurse)) {
93+
$packageJson = tar -xOf $package "package/package.json" | ConvertFrom-Json
94+
if (!$packageJson) {
95+
Write-Warning "Could not read package.json from $package"
96+
continue;
97+
}
98+
Write-Host "Verifying tag '$(TagName)' is set for '$($packageJson.name)' version '$($packageJson.version)'"
99+
$packageTags = npm view $packageJson.name "dist-tags" -json -silent | ConvertFrom-Json
100+
if ($LASTEXITCODE -ne 0 -or !$packageTags) {
101+
Write-Warning "Failed to retrieve dist-tags for $packageJson.name. It is possible the package hasn't been indexed yet so ignoring."
102+
continue
103+
}
104+
105+
if ($packageTags."$(TagName)" -ne $packageJson.version) {
106+
Write-Error "The dist-tag '$(TagName)' for package '$($packageJson.name)' is not correctly set something must have gone wrong during the ESRP release process."
107+
exit 1
108+
}
109+
}
110+
displayName: 'Verify tag after ESRP release'
111+
condition: and(succeeded(), ne(variables['SkipPublishing'], 'true'))
59112
60113
- ${{ else }}:
61114
- template: /eng/common/pipelines/templates/steps/create-authenticated-npmrc.yml
62115
parameters:
63116
npmrcPath: $(ArtifactPath)/.npmrc
64117
registryUrl: ${{ parameters.Registry }}
118+
CustomCondition: and(succeeded(), ne(variables['SkipPublishing'], 'true'))
65119

66120
- pwsh: |
67121
foreach ($package in (dir $(ArtifactPath) *.tgz -Recurse)) {
68-
Write-Host "npm publish $package --verbose --access public --tag ${{ parameters.Tag }} --registry ${{ parameters.Registry }}"
69-
npm publish $package --verbose --access public --tag ${{ parameters.Tag }} --registry ${{ parameters.Registry }}
122+
Write-Host "npm publish $package --verbose --access public --tag $(TagName) --registry ${{ parameters.Registry }}"
123+
npm publish $package --verbose --access public --tag $(TagName) --registry ${{ parameters.Registry }}
70124
if ($LASTEXITCODE -ne 0) {
71125
Write-Error "Failed to publish $package to ${{ parameters.Registry }}"
72126
exit $LASTEXITCODE
73127
}
74128
}
75129
displayName: 'Publish ${{ parameters.ArtifactName }}'
130+
condition: and(succeeded(), ne(variables['SkipPublishing'], 'true'))
76131
workingDirectory: $(ArtifactPath)
77132

eng/common/pipelines/templates/stages/archetype-sdk-tool-pwsh.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@ stages:
2525
strategy:
2626
matrix:
2727
Windows:
28-
Pool: azsdk-pool-mms-win-2022-general
28+
Pool: azsdk-pool
2929
Image: windows-2022
3030
Linux:
31-
Pool: azsdk-pool-mms-ubuntu-2204-general
32-
Image: ubuntu-22.04
31+
Pool: azsdk-pool
32+
Image: ubuntu-24.04
3333
Mac:
3434
Pool: Azure Pipelines
3535
Image: macos-latest
3636

3737
pool:
3838
name: $(Pool)
39-
vmImage: $(Image)
39+
demands: ImageOverride -equals $(Image)
4040

4141
steps:
4242
- ${{ parameters.PreTestSteps }}

eng/common/pipelines/templates/steps/create-authenticated-npmrc.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ parameters:
33
type: string
44
- name: registryUrl
55
type: string
6+
- name: CustomCondition
7+
type: string
8+
default: succeeded()
69

710
steps:
811
- pwsh: |
@@ -17,7 +20,9 @@ steps:
1720
$content = "registry=${{ parameters.registryUrl }}`n`nalways-auth=true"
1821
$content | Out-File '${{ parameters.npmrcPath }}'
1922
displayName: 'Create .npmrc'
23+
condition: ${{ parameters.CustomCondition }}
2024
- task: npmAuthenticate@0
2125
displayName: Authenticate .npmrc
26+
condition: ${{ parameters.CustomCondition }}
2227
inputs:
2328
workingFile: ${{ parameters.npmrcPath }}

0 commit comments

Comments
 (0)