Skip to content

Commit 4a79e7f

Browse files
committed
chore: merge remote-tracking branch 'origin/main' into fix/rename-readers
2 parents adb30a1 + 4dd593c commit 4a79e7f

File tree

139 files changed

+3777
-1237
lines changed

Some content is hidden

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

139 files changed

+3777
-1237
lines changed

.azure-pipelines/ci-build.yml

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@ pr:
1515
include:
1616
- main
1717
- support/v1
18+
1819
variables:
1920
buildPlatform: 'Any CPU'
2021
buildConfiguration: 'Release'
2122
ProductBinPath: '$(Build.SourcesDirectory)\src\Microsoft.OpenApi\bin\$(BuildConfiguration)'
23+
REGISTRY: 'msgraphprodregistry.azurecr.io'
24+
IMAGE_NAME: 'public/openapi/hidi'
25+
PREVIEW_BRANCH: 'refs/heads/main'
26+
2227
resources:
2328
repositories:
2429
- repository: 1ESPipelineTemplates
@@ -313,3 +318,119 @@ extends:
313318
assets: '$(Pipeline.Workspace)\**\*.exe'
314319
addChangeLog: false
315320

321+
- stage: Build_and_deploy_docker_images
322+
displayName: 'Build and deploy docker images'
323+
condition: or(eq(variables['build.sourceBranch'], 'refs/tags/v'), eq(variables['build.sourceBranch'], variables['PREVIEW_BRANCH']))
324+
dependsOn: build
325+
pool:
326+
name: Azure-Pipelines-1ESPT-ExDShared
327+
image: ubuntu-latest
328+
os: linux
329+
jobs:
330+
- job: buildAndPush
331+
steps:
332+
- task: AzureCLI@2
333+
displayName: 'Login to Azure Container Registry'
334+
inputs:
335+
azureSubscription: 'ACR Images Push Service Connection'
336+
scriptType: bash
337+
scriptLocation: inlineScript
338+
inlineScript: |
339+
az acr login --name msgraphprodregistry
340+
341+
- powershell: |
342+
$content = [XML](Get-Content ./Directory.Build.props)
343+
Write-Host "XML loaded, finding version..."
344+
345+
# Handle PropertyGroup as either a single element or array
346+
$version = $null
347+
if ($content.Project.PropertyGroup -is [array]) {
348+
Write-Host "PropertyGroup is an array, checking each entry..."
349+
foreach ($pg in $content.Project.PropertyGroup) {
350+
if ($pg.Version) {
351+
$version = $pg.Version.ToString().Trim()
352+
Write-Host "Found version in PropertyGroup array: $version"
353+
break
354+
}
355+
}
356+
} else {
357+
# Single PropertyGroup
358+
$version = $content.Project.PropertyGroup.Version
359+
if ($version) {
360+
$version = $version.ToString().Trim()
361+
Write-Host "Found version in PropertyGroup: $version"
362+
}
363+
}
364+
365+
if (-not $version) {
366+
Write-Host "##vso[task.logissue type=error]Version not found in Directory.Build.props"
367+
exit 1
368+
}
369+
370+
Write-Host "Version found: $version"
371+
Write-Host "##vso[task.setvariable variable=version;isoutput=true]$version"
372+
Write-Host "##vso[task.setvariable variable=VERSION]$version"
373+
displayName: 'Get version from csproj'
374+
name: getversion
375+
376+
- bash: |
377+
# Debug output to verify version variable
378+
echo "Version from previous step: $VERSION"
379+
displayName: 'Verify version variable'
380+
381+
- bash: |
382+
echo "Build Number: $(Build.BuildNumber)"
383+
# Extract the last 3 characters for the run number
384+
runnumber=$(echo "$(Build.BuildNumber)" | grep -o '[0-9]\+$')
385+
echo "Extracted Run Number: $runnumber"
386+
387+
# If extraction fails, set a default
388+
if [ -z "$runnumber" ]; then
389+
echo "Extraction failed, using default value"
390+
runnumber=$(date +"%S%N" | cut -c1-3)
391+
echo "Generated fallback run number: $runnumber"
392+
fi
393+
394+
# Set the variable for later steps
395+
echo "##vso[task.setvariable variable=RUNNUMBER]$runnumber"
396+
echo "##vso[task.setvariable variable=RUNNUMBER;isOutput=true]$runnumber"
397+
displayName: 'Get truncated run number'
398+
name: getrunnumber
399+
condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
400+
401+
- bash: |
402+
date=$(date +'%Y%m%d')
403+
echo "Date value: $date"
404+
echo "##vso[task.setvariable variable=BUILDDATE;isOutput=true]$date"
405+
echo "##vso[task.setvariable variable=BUILDDATE]$date"
406+
displayName: 'Get current date'
407+
name: setdate
408+
condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
409+
410+
- bash: |
411+
echo "Building Docker image..."
412+
echo "Using build date: ${BUILDDATE}"
413+
# Using quotes around tags to prevent flag interpretation
414+
docker build \
415+
-t "$(REGISTRY)/$(IMAGE_NAME):nightly" \
416+
-t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
417+
"$(Build.SourcesDirectory)"
418+
419+
echo "Pushing Docker image with nightly tag..."
420+
docker push "$(REGISTRY)/$(IMAGE_NAME):nightly"
421+
docker push "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}"
422+
displayName: 'Build and Push Nightly Image'
423+
condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
424+
425+
- bash: |
426+
echo "Building Docker image for release..."
427+
docker build \
428+
-t "$(REGISTRY)/$(IMAGE_NAME):latest" \
429+
-t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
430+
"$(Build.SourcesDirectory)"
431+
432+
echo "Pushing Docker image with latest and version tags..."
433+
docker push "$(REGISTRY)/$(IMAGE_NAME):latest"
434+
docker push "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}"
435+
displayName: 'Build and Push Release Image'
436+
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
# File initially created using https://github.com/MIchaelMainer/policyservicetoolkit/blob/main/branch_protection_export.ps1.
5+
6+
name: OpenAPI.NET-branch-protection
7+
description: Branch protection policy for the OpenAPI.NET repository
8+
resource: repository
9+
configuration:
10+
branchProtectionRules:
11+
12+
- branchNamePattern: main
13+
# This branch pattern applies to the following branches as of approximately 02/27/2025 15:28:20:
14+
# main
15+
16+
# Specifies whether this branch can be deleted. boolean
17+
allowsDeletions: false
18+
# Specifies whether forced pushes are allowed on this branch. boolean
19+
allowsForcePushes: false
20+
# Specifies whether new commits pushed to the matching branches dismiss pull request review approvals. boolean
21+
dismissStaleReviews: true
22+
# Specifies whether admins can overwrite branch protection. boolean
23+
isAdminEnforced: true
24+
# Indicates whether "Require a pull request before merging" is enabled. boolean
25+
requiresPullRequestBeforeMerging: true
26+
# Specifies the number of pull request reviews before merging. int (0-6). Should be null/empty if PRs are not required
27+
requiredApprovingReviewsCount: 1
28+
# Require review from Code Owners. Requires requiredApprovingReviewsCount. boolean
29+
requireCodeOwnersReview: true
30+
# Are commits required to be signed. boolean. TODO: all contributors must have commit signing on local machines.
31+
requiresCommitSignatures: false
32+
# Are conversations required to be resolved before merging? boolean
33+
requiresConversationResolution: true
34+
# Are merge commits prohibited from being pushed to this branch. boolean
35+
requiresLinearHistory: false
36+
# Required status checks to pass before merging. Values can be any string, but if the value does not correspond to any existing status check, the status check will be stuck on pending for status since nothing exists to push an actual status
37+
requiredStatusChecks:
38+
- license/cla
39+
- CodeQL
40+
- Continuous Integration
41+
# Require branches to be up to date before merging. boolean
42+
requiresStrictStatusChecks: false
43+
# Indicates whether there are restrictions on who can push. boolean. Should be set with whoCanPush.
44+
restrictsPushes: false
45+
# Restrict who can dismiss pull request reviews. boolean
46+
restrictsReviewDismissals: false
47+
48+
- branchNamePattern: support/v1
49+
# This branch pattern applies to the following branches as of approximately 02/27/2025 15:28:20:
50+
# support/v1
51+
52+
# Specifies whether this branch can be deleted. boolean
53+
allowsDeletions: false
54+
# Specifies whether forced pushes are allowed on this branch. boolean
55+
allowsForcePushes: false
56+
# Specifies whether new commits pushed to the matching branches dismiss pull request review approvals. boolean
57+
dismissStaleReviews: true
58+
# Specifies whether admins can overwrite branch protection. boolean
59+
isAdminEnforced: true
60+
# Indicates whether "Require a pull request before merging" is enabled. boolean
61+
requiresPullRequestBeforeMerging: true
62+
# Specifies the number of pull request reviews before merging. int (0-6). Should be null/empty if PRs are not required
63+
requiredApprovingReviewsCount: 1
64+
# Require review from Code Owners. Requires requiredApprovingReviewsCount. boolean
65+
requireCodeOwnersReview: true
66+
# Are commits required to be signed. boolean. TODO: all contributors must have commit signing on local machines.
67+
requiresCommitSignatures: false
68+
# Are conversations required to be resolved before merging? boolean
69+
requiresConversationResolution: true
70+
# Are merge commits prohibited from being pushed to this branch. boolean
71+
requiresLinearHistory: false
72+
# Required status checks to pass before merging. Values can be any string, but if the value does not correspond to any existing status check, the status check will be stuck on pending for status since nothing exists to push an actual status
73+
requiredStatusChecks:
74+
- license/cla
75+
- CodeQL
76+
- Continuous Integration
77+
# Require branches to be up to date before merging. boolean
78+
requiresStrictStatusChecks: false
79+
# Indicates whether there are restrictions on who can push. boolean. Should be set with whoCanPush.
80+
restrictsPushes: false
81+
# Restrict who can dismiss pull request reviews. boolean
82+
restrictsReviewDismissals: false
83+
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
id:
2+
name: GitOps.PullRequestIssueManagement
3+
description: GitOps.PullRequestIssueManagement primitive
4+
owner:
5+
resource: repository
6+
disabled: false
7+
where:
8+
configuration:
9+
resourceManagementConfiguration:
10+
scheduledSearches:
11+
- description:
12+
frequencies:
13+
- hourly:
14+
hour: 6
15+
filters:
16+
- isIssue
17+
- isOpen
18+
- hasLabel:
19+
label: 'status:waiting-for-author-feedback'
20+
- hasLabel:
21+
label: 'status:no-recent-activity'
22+
- noActivitySince:
23+
days: 3
24+
actions:
25+
- closeIssue
26+
- description:
27+
frequencies:
28+
- hourly:
29+
hour: 6
30+
filters:
31+
- isIssue
32+
- isOpen
33+
- hasLabel:
34+
label: 'status:waiting-for-author-feedback'
35+
- noActivitySince:
36+
days: 4
37+
- isNotLabeledWith:
38+
label: 'status:no-recent-activity'
39+
actions:
40+
- addLabel:
41+
label: 'status:no-recent-activity'
42+
- addReply:
43+
reply: This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **4 days**. It will be closed if no further activity occurs **within 3 days of this comment**.
44+
- description:
45+
frequencies:
46+
- hourly:
47+
hour: 6
48+
filters:
49+
- isIssue
50+
- isOpen
51+
- hasLabel:
52+
label: 'status:duplicate'
53+
- noActivitySince:
54+
days: 1
55+
actions:
56+
- addReply:
57+
reply: This issue has been marked as duplicate and has not had any activity for **1 day**. It will be closed for housekeeping purposes.
58+
- closeIssue
59+
eventResponderTasks:
60+
- if:
61+
- payloadType: Issue_Comment
62+
- isAction:
63+
action: Created
64+
- isActivitySender:
65+
issueAuthor: True
66+
- hasLabel:
67+
label: 'status:waiting-for-author-feedback'
68+
- isOpen
69+
then:
70+
- addLabel:
71+
label: 'Needs: Attention :wave:'
72+
- removeLabel:
73+
label: 'status:waiting-for-author-feedback'
74+
description:
75+
- if:
76+
- payloadType: Issues
77+
- not:
78+
isAction:
79+
action: Closed
80+
- hasLabel:
81+
label: 'status:no-recent-activity'
82+
then:
83+
- removeLabel:
84+
label: 'status:no-recent-activity'
85+
description:
86+
- if:
87+
- payloadType: Issue_Comment
88+
- hasLabel:
89+
label: 'status:no-recent-activity'
90+
then:
91+
- removeLabel:
92+
label: 'status:no-recent-activity'
93+
description:
94+
- if:
95+
- payloadType: Pull_Request
96+
then:
97+
- inPrLabel:
98+
label: WIP
99+
description:
100+
onFailure:
101+
onSuccess:

.github/workflows/docker.yml

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

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "2.0.0-preview9"
2+
".": "2.0.0-preview.12"
33
}

0 commit comments

Comments
 (0)