diff --git a/.azure-pipelines/ci-build.yml b/.azure-pipelines/ci-build.yml
index 244797588..8b23b8d10 100644
--- a/.azure-pipelines/ci-build.yml
+++ b/.azure-pipelines/ci-build.yml
@@ -21,7 +21,7 @@ pool:
variables:
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
- ProductBinPath: '$(Build.SourcesDirectory)\src\Microsoft.OpenApi\bin\$(BuildConfiguration)'
+ ProductBinPath: '$(Build.SourcesDirectory)\src\Microsoft.OpenApi\bin\$(BuildConfiguration)'
stages:
@@ -31,22 +31,22 @@ stages:
- job: build
steps:
- task: UseDotNet@2
- displayName: 'Use .NET 2' # needed for ESRP signing
+ displayName: 'Use .NET 6' # needed for ESRP signing
inputs:
- version: 2.x
+ version: 6.x
- task: UseDotNet@2
displayName: 'Use .NET 7'
inputs:
version: 7.x
- - task: PoliCheck@1
+ - task: PoliCheck@2
displayName: 'Run PoliCheck "/src"'
inputs:
inputType: CmdLine
cmdLineArgs: '/F:$(Build.SourcesDirectory)/src /T:9 /Sev:"1|2" /PE:2 /O:poli_result_src.xml'
- - task: PoliCheck@1
+ - task: PoliCheck@2
displayName: 'Run PoliCheck "/test"'
inputs:
inputType: CmdLine
@@ -75,14 +75,14 @@ stages:
arguments: '--configuration $(BuildConfiguration) --no-build'
# CredScan
- - task: securedevelopmentteam.vss-secure-development-tools.build-task-credscan.CredScan@2
+ - task: securedevelopmentteam.vss-secure-development-tools.build-task-credscan.CredScan@3
displayName: 'Run CredScan - Src'
inputs:
toolMajorVersion: 'V2'
scanFolder: '$(Build.SourcesDirectory)\src'
debugMode: false
- - task: securedevelopmentteam.vss-secure-development-tools.build-task-credscan.CredScan@2
+ - task: securedevelopmentteam.vss-secure-development-tools.build-task-credscan.CredScan@3
displayName: 'Run CredScan - Test'
inputs:
toolMajorVersion: 'V2'
@@ -95,34 +95,38 @@ stages:
FileDirPath: '$(ProductBinPath)'
enabled: false
- - task: BinSkim@3
+ - task: BinSkim@4
displayName: 'Run BinSkim - Product Binaries'
inputs:
InputType: Basic
- AnalyzeTarget: '$(ProductBinPath)\**\Microsoft.OpenApi.dll'
+ AnalyzeTargetGlob: '$(ProductBinPath)\**\Microsoft.OpenApi.dll'
AnalyzeSymPath: '$(ProductBinPath)'
AnalyzeVerbose: true
AnalyzeHashes: true
AnalyzeEnvironment: true
- - task: PublishSecurityAnalysisLogs@2
+ - task: PublishSecurityAnalysisLogs@3
displayName: 'Publish Security Analysis Logs'
inputs:
ArtifactName: SecurityLogs
- - task: PostAnalysis@1
+ - task: PostAnalysis@2
displayName: 'Post Analysis'
inputs:
BinSkim: true
CredScan: true
PoliCheck: true
- - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
+ - task: EsrpCodeSigning@2
displayName: 'ESRP CodeSigning'
inputs:
ConnectedServiceName: 'microsoftgraph ESRP CodeSign DLL and NuGet (AKV)'
FolderPath: src
signConfigType: inlineSignParams
+ UseMinimatch: true
+ Pattern: |
+ **\*.exe
+ **\*.dll
inlineOperation: |
[
{
@@ -162,26 +166,27 @@ stages:
}
]
SessionTimeout: 20
-
+
# Pack
- pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi/Microsoft.OpenApi.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg
displayName: 'pack OpenAPI'
-
+
# Pack
- pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi.Readers/Microsoft.OpenApi.Readers.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg
displayName: 'pack Readers'
# Pack
- pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg
- displayName: 'pack Hidi'
-
- - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
+ displayName: 'pack Hidi'
+
+ - task: EsrpCodeSigning@2
displayName: 'ESRP CodeSigning Nuget Packages'
inputs:
ConnectedServiceName: 'microsoftgraph ESRP CodeSign DLL and NuGet (AKV)'
FolderPath: '$(Build.ArtifactStagingDirectory)'
Pattern: '*.nupkg'
signConfigType: inlineSignParams
+ UseMinimatch: true
inlineOperation: |
[
{
@@ -209,7 +214,7 @@ stages:
$xml = [Xml] (Get-Content .\src\Microsoft.OpenApi.Hidi\Microsoft.OpenApi.Hidi.csproj)
$version = $xml.Project.PropertyGroup.Version
echo $version
- echo "##vso[task.setvariable variable=hidiversion]$version"
+ echo "##vso[task.setvariable variable=hidiversion]$version"
# publish hidi as an .exe
- task: DotNetCoreCLI@2
@@ -219,7 +224,7 @@ stages:
arguments: -c Release --runtime win-x64 /p:PublishSingleFile=true /p:PackAsTool=false --self-contained --output $(Build.ArtifactStagingDirectory)/Microsoft.OpenApi.Hidi-v$(hidiversion)
projects: 'src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj'
publishWebProjects: False
- zipAfterPublish: false
+ zipAfterPublish: false
- task: CopyFiles@2
displayName: Prepare staging folder for upload
@@ -236,7 +241,7 @@ stages:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Hidi'
- inputs:
+ inputs:
ArtifactName: Microsoft.OpenApi.Hidi-v$(hidiversion)
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Microsoft.OpenApi.Hidi-v$(hidiversion)'
@@ -295,8 +300,8 @@ stages:
{ "label" : "enhancement", "V2-Enhancement", "displayName" : "Enhancements", "state" : "closed" },
{ "label" : "bug", "bug-fix", "displayName" : "Bugs", "state" : "closed" },
{ "label" : "documentation", "doc", "displayName" : "Documentation", "state" : "closed"},
- { "label" : "dependencies", "displayName" : "Package Updates", "state" : "closed" }]'
-
+ { "label" : "dependencies", "displayName" : "Package Updates", "state" : "closed" }]'
+
- deployment: deploy_lib
dependsOn: []
environment: nuget-org
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index c5b4cab90..a7d83e3dc 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -10,8 +10,8 @@ assignees: ''
**Describe the bug**
A clear and concise description of what the bug is.
-**To Reproduce**
-Steps to reproduce the current behavior:
+**OpenApi File To Reproduce**
+Add the OpenApi file you're using or a link to it as well as the steps to reproduce the current behavior.
**Expected behavior**
A clear and concise description of what you expected to happen.
diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml
index 77dc8fd7b..95f001e1f 100644
--- a/.github/workflows/ci-cd.yml
+++ b/.github/workflows/ci-cd.yml
@@ -14,7 +14,7 @@ jobs:
GITHUB_RUN_NUMBER: ${{ github.run_number }}
steps:
- name: Setup .NET
- uses: actions/setup-dotnet@v3
+ uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index f58bfa0c9..d9bedc14d 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -17,13 +17,13 @@ jobs:
uses: actions/checkout@v4
- name: Setup .NET
- uses: actions/setup-dotnet@v3
+ uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
- name: Initialize CodeQL
id: init_codeql
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
queries: security-and-quality
@@ -43,6 +43,6 @@ jobs:
- name: Perform CodeQL Analysis
id: analyze_codeql
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v3
# Built with ❤ by [Pipeline Foundation](https://pipeline.foundation)
\ No newline at end of file
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index c6b975ae5..5f12a604b 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -30,16 +30,16 @@ jobs:
runs-on: windows-latest
steps:
- name: Set up JDK 17
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Setup .NET 5 # At the moment the scanner requires dotnet 5 https://www.nuget.org/packages/dotnet-sonarscanner
- uses: actions/setup-dotnet@v3
+ uses: actions/setup-dotnet@v4
with:
dotnet-version: 5.0.x
- name: Setup .NET
- uses: actions/setup-dotnet@v3
+ uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
- uses: actions/checkout@v4
diff --git a/docs/CI-CD_DOCUMENTATION.md b/docs/CI-CD_DOCUMENTATION.md
deleted file mode 100644
index 40053cf82..000000000
--- a/docs/CI-CD_DOCUMENTATION.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# CI/CD documentation
-
-## 1. Run workflow manually
-
-1. Go to the project's GitHub repository and click on the **Actions** tab
-
-2. From the "Workflows" list on the left, click on "CI/CD Pipeline"
-
-3. On the right, next to the "This workflow has a workflow_dispatch event trigger" label, click on the "Run workflow" dropdown, make sure the default branch is selected (if not manually changed, should be main or master) in the "Use workflow from" dropdown and click the "Run workflow" button
-
-![Actions_workflow_dispatch](images/Actions_workflow_dispatch.png)
-
-NOTE: **screenshots are only exemplary**
-
-
-
-## 2. Automated NuGet publishing
-
-To setup the automated publishing to NuGet:
-
-1. Go to the repo **Settings** tab -> **Secrets**
-
-2. Add a secret with the name `NUGET_API_KEY` and as value use an API key from NuGet.org that is assigned to the packages for this project
-
-NOTE: the automated NuGet publishing is execute **only** when a release is triggered by the ["Automated versioning" feature](#3-automated-versioning)
-
-
-
-## 3. Automated versioning
-
-Automatically bumps up the GitHub tag in the repo and executes the CD job
-
-Note: **not every commit to your default branch creates a release**
-
-Follow these instructions for any commit (push or PR merge) to your default branch, you would like to execute the automated versioning.
-
-You would need one of three keywords at the start of your commit title. Each of the three keywords corresponds to a number in your release version i.e. v1.2.3. The release versioning uses the ["Conventional Commits" specification](https://www.conventionalcommits.org/en/v1.0.0/):
-
-- "fix: ..." - this keyword corresponds to the last number v1.2.**3**, also known as PATCH;
-- "feat: ..." - this keyword corresponds to the middle number v1.**2**.3, also known as MINOR;
-- "perf: ..." - this keyword corresponds to the first number v**1**.2.3, also known as MAJOR. In addition, to trigger a MAJOR release, you would need to write "BREAKING CHANGE: ..." in the description of the commit, with an empty line above it to indicate it is in the