diff --git a/.azure-pipelines/generation-pipeline.yml b/.azure-pipelines/generation-pipeline.yml index 13cdebb15..0d396af41 100644 --- a/.azure-pipelines/generation-pipeline.yml +++ b/.azure-pipelines/generation-pipeline.yml @@ -1,6 +1,5 @@ # Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information. # contains an end to end validation pipeline using C# compilation tests for staging beta metadata - trigger: none pr: none schedules: @@ -12,126 +11,120 @@ schedules: always: true resources: - repositories: - - repository: msgraph-sdk-dotnet - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-sdk-dotnet - ref: main - - repository: msgraph-beta-sdk-dotnet - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-sdk-dotnet - ref: main - - repository: msgraph-sdk-php - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-sdk-php - ref: main - - repository: msgraph-beta-sdk-php - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-sdk-php - ref: main - - repository: msgraph-typescript-typings - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-typescript-typings - ref: main - - repository: msgraph-beta-typescript-typings - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-typescript-typings - ref: main - - repository: msgraph-sdk-java - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-sdk-java - ref: main - - repository: msgraph-beta-sdk-java - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-sdk-java - ref: main - - repository: msgraph-sdk-go - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-sdk-go - ref: main - - repository: msgraph-beta-sdk-go - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-sdk-go - ref: main - - repository: msgraph-sdk-typescript - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-sdk-typescript - ref: main - - repository: msgraph-beta-sdk-typescript - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-sdk-typescript - ref: main - - repository: msgraph-sdk-python - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-sdk-python - ref: main - - repository: msgraph-beta-sdk-python - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-beta-sdk-python - ref: main - - repository: msgraph-metadata - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/msgraph-metadata - - repository: microsoft-graph-docs - type: github - endpoint: microsoftgraph (22) - name: microsoftgraph/microsoft-graph-docs - - repository: kiota - type: github - endpoint: microsoftkiota - name: microsoft/kiota - - repository: Agents-M365Copilot - type: github - endpoint: microsoftkiota - name: microsoft/Agents-M365Copilot - - -pool: 1es-ubuntu-latest-m - + repositories: + - repository: msgraph-sdk-dotnet + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-sdk-dotnet + ref: main + - repository: msgraph-beta-sdk-dotnet + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-sdk-dotnet + ref: main + - repository: msgraph-sdk-php + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-sdk-php + ref: main + - repository: msgraph-beta-sdk-php + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-sdk-php + ref: main + - repository: msgraph-typescript-typings + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-typescript-typings + ref: main + - repository: msgraph-beta-typescript-typings + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-typescript-typings + ref: main + - repository: msgraph-sdk-java + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-sdk-java + ref: main + - repository: msgraph-beta-sdk-java + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-sdk-java + ref: main + - repository: msgraph-sdk-go + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-sdk-go + ref: main + - repository: msgraph-beta-sdk-go + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-sdk-go + ref: main + - repository: msgraph-sdk-typescript + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-sdk-typescript + ref: main + - repository: msgraph-beta-sdk-typescript + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-sdk-typescript + ref: main + - repository: msgraph-sdk-python + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-sdk-python + ref: main + - repository: msgraph-beta-sdk-python + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-beta-sdk-python + ref: main + - repository: msgraph-metadata + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/msgraph-metadata + - repository: microsoft-graph-docs + type: github + endpoint: microsoftgraph (22) + name: microsoftgraph/microsoft-graph-docs + - repository: kiota + type: github + endpoint: microsoftkiota + name: microsoft/kiota + - repository: Agents-M365Copilot + type: github + endpoint: microsoftkiota + name: microsoft/Agents-M365Copilot + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release parameters: - - name: v1BranchPrefix - default: v1.0/pipelinebuild - displayName: V1 Branch Prefix - - - name: betaBranchPrefix - default: beta/pipelinebuild - displayName: Beta Branch Prefix (should be different than V1) - - - name: skipMetadataCaptureAndClean - default: false - displayName: Skip metadata capture and clean - type: boolean - - - name: skipOpenApiCaptureAndClean - default: false - displayName: Skip OpenAPI capture and clean - type: boolean - - - name: publishChanges - default: true - type: boolean - displayName: Publish changes? - - - name: overrideSkipCI - default: false - type: boolean - displayName: Override [skip ci]? Checking this box will generate the SDK PRs - +- name: v1BranchPrefix + default: v1.0/pipelinebuild + displayName: V1 Branch Prefix +- name: betaBranchPrefix + default: beta/pipelinebuild + displayName: Beta Branch Prefix (should be different than V1) +- name: skipMetadataCaptureAndClean + default: false + displayName: Skip metadata capture and clean + type: boolean +- name: skipOpenApiCaptureAndClean + default: false + displayName: Skip OpenAPI capture and clean + type: boolean +- name: publishChanges + default: true + type: boolean + displayName: Publish changes? +- name: overrideSkipCI + default: false + type: boolean + displayName: Override [skip ci]? Checking this box will generate the SDK PRs variables: buildConfiguration: 'Release' cleanMetadataFileBeta: '$(Build.SourcesDirectory)/msgraph-metadata/clean_beta_metadata/cleanMetadataWithDescriptionsbeta.xml' @@ -158,288 +151,413 @@ variables: conversionSettingsDirectory: '$(Build.SourcesDirectory)/msgraph-metadata/conversion-settings' transformScript: '$(Build.SourcesDirectory)/msgraph-metadata/transforms/csdl/preprocess_csdl.xsl' docsDirectory: '$(Build.SourcesDirectory)/microsoft-graph-docs' - v1Branch: ${{ parameters.v1BranchPrefix }}/$(Build.BuildId) betaBranch: ${{ parameters.betaBranchPrefix }}/$(Build.BuildId) - publishChanges: ${{ parameters.publishChanges }} overrideSkipCI: ${{ parameters.overrideSkipCI }} skipMetadataCaptureAndClean: ${{ parameters.skipMetadataCaptureAndClean }} skipOpenApiCaptureAndClean: ${{ parameters.skipOpenApiCaptureAndClean }} phpVersion: 7.2 - -# This stage is the core dependency for all other stages. -stages: -- stage: stage_build_and_publish_typewriter - dependsOn: [] # remove the implicit dependency to any previous stage - jobs: - - job: build_and_publish_typewriter - steps: - - template: generation-templates/build-and-publish-typewriter.yml - -- stage: stage_build_and_publish_kiota - dependsOn: [] # remove the implicit dependency to any previous stage - jobs: - - job: build_and_publish_kiota - steps: - - template: generation-templates/build-and-publish-kiota.yml - +extends: + template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates + parameters: + sdl: + sourceRepositoriesToScan: + include: + - repository: kiota + exclude: + - repository: msgraph-sdk-dotnet + - repository: msgraph-beta-sdk-dotnet + - repository: msgraph-sdk-php + - repository: msgraph-beta-sdk-php + - repository: msgraph-typescript-typings + - repository: msgraph-beta-typescript-typings + - repository: msgraph-sdk-java + - repository: msgraph-beta-sdk-java + - repository: msgraph-sdk-go + - repository: msgraph-beta-sdk-go + - repository: msgraph-sdk-typescript + - repository: msgraph-beta-sdk-typescript + - repository: msgraph-sdk-python + - repository: msgraph-beta-sdk-python + - repository: msgraph-metadata + - repository: microsoft-graph-docs + - repository: Agents-M365Copilot + - repository: 1ESPipelineTemplates + pool: + name: Azure-Pipelines-1ESPT-ExDShared + vmImage: ubuntu-latest + stages: + - stage: stage_build_and_publish_typewriter + dependsOn: [] # remove the implicit dependency to any previous stage + jobs: + - job: build_and_publish_typewriter + templateContext: + outputs: + - output: pipelineArtifact + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: typewriter + steps: + - template: /.azure-pipelines/generation-templates/build-and-publish-typewriter.yml@self + - stage: stage_build_and_publish_kiota + dependsOn: [] # remove the implicit dependency to any previous stage + jobs: + - job: build_and_publish_kiota + templateContext: + outputs: + - output: pipelineArtifact + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: kiota + steps: + - template: /.azure-pipelines/generation-templates/build-and-publish-kiota.yml@self # Downloads the latest public beta metadata. If there are changes, we checkin # the public metadata into microsoftgraph/msgraph-metadata, and then run the # metadata through the cleaning and documentation processes before validating # the results with generated and built .NET code files as a smoke test. -- stage: stage_v1_metadata - dependsOn: stage_build_and_publish_typewriter - condition: | - and(succeeded('stage_build_and_publish_typewriter'), - eq( ${{ parameters.skipMetadataCaptureAndClean }}, false)) - jobs: - - job: v1_metadata - steps: - - template: generation-templates/capture-metadata.yml - parameters: - endpoint: 'v1.0' - inputMetadata: $(rawMetadataFileV1) - outputPath: $(cleanMetadataFileV1OutputPath) - cleanMetadataFile: $(cleanMetadataFileV1) - cleanMetadataFolder: $(cleanMetadataFolderV1) - cleanMetadataFileWithAnnotations: $(cleanMetadataFileWithAnnotationsV1) - metadataTypeSpecAnnotationsSource: $(metadataTypeSpecAnnotationsSource) + - stage: stage_v1_metadata + dependsOn: stage_build_and_publish_typewriter + condition: | + and(succeeded('stage_build_and_publish_typewriter'), + eq( ${{ parameters.skipMetadataCaptureAndClean }}, false)) + jobs: + - job: v1_metadata + templateContext: + outputs: + - output: pipelineArtifact + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: $(cleanMetadataFolderV1) + inputs: + - input: pipelineArtifact + buildType: 'current' + artifactName: 'typewriter' + targetPath: '$(Build.SourcesDirectory)/typewriter' + steps: + - template: /.azure-pipelines/generation-templates/capture-metadata.yml@self + parameters: + endpoint: 'v1.0' + inputMetadata: $(rawMetadataFileV1) + outputPath: $(cleanMetadataFileV1OutputPath) + cleanMetadataFile: $(cleanMetadataFileV1) + cleanMetadataFolder: $(cleanMetadataFolderV1) + cleanMetadataFileWithAnnotations: $(cleanMetadataFileWithAnnotationsV1) + metadataTypeSpecAnnotationsSource: $(metadataTypeSpecAnnotationsSource) # Same description as stage_v1_metadata -- stage: stage_beta_metadata - dependsOn: stage_build_and_publish_typewriter - condition: | - and(succeeded('stage_build_and_publish_typewriter'), - eq( ${{ parameters.skipMetadataCaptureAndClean }}, false)) - jobs: - - job: beta_metadata - steps: - - template: generation-templates/capture-metadata.yml - parameters: - endpoint: 'beta' - inputMetadata: $(rawMetadataFileBeta) - outputPath: $(cleanMetadataFileBetaOutputPath) - cleanMetadataFile: $(cleanMetadataFileBeta) - cleanMetadataFolder: $(cleanMetadataFolderBeta) - cleanMetadataFileWithAnnotations: $(cleanMetadataFileWithAnnotationsBeta) - metadataTypeSpecAnnotationsSource: $(metadataTypeSpecAnnotationsSource) - -- stage: stage_v1_openapi - dependsOn: stage_v1_metadata - condition: and(in(dependencies.stage_v1_metadata.result, 'Succeeded', 'Skipped'), eq( ${{ parameters.skipOpenApiCaptureAndClean }}, false)) - jobs: - - template: generation-templates/capture-openapi.yml - parameters: - endpoint: 'v1.0' - outputPath: $(cleanOpenAPIFileV1OutputPath) - cleanMetadataFolder: $(cleanOpenAPIFolderV1) - -- stage: stage_beta_openapi - dependsOn: stage_beta_metadata - condition: and(in(dependencies.stage_beta_metadata.result, 'Succeeded', 'Skipped'), eq( ${{ parameters.skipOpenApiCaptureAndClean }}, false)) - jobs: - - template: generation-templates/capture-openapi.yml - parameters: - endpoint: 'beta' - outputPath: $(cleanOpenAPIFileBetaOutputPath) - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - -- stage: stage_csharp_v1_kiota - dependsOn: - - stage_build_and_publish_kiota - - stage_v1_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: csharp_v1_kiota - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'csharp' - version: '' - repoName: 'msgraph-sdk-dotnet' - baseBranchName : 'main' - branchName: 'kiota/$(v1Branch)' - targetClassName: "BaseGraphServiceClient" - targetNamespace: "Microsoft.Graph" - commitMessagePrefix: "feat(generation): update request builders and models" - customArguments: "-b" # Enable the backing store - cleanMetadataFolder: $(cleanOpenAPIFolderV1) - languageSpecificSteps: - - template: generation-templates/dotnet-kiota.yml + - stage: stage_beta_metadata + dependsOn: stage_build_and_publish_typewriter + condition: | + and(succeeded('stage_build_and_publish_typewriter'), + eq( ${{ parameters.skipMetadataCaptureAndClean }}, false)) + jobs: + - job: beta_metadata + templateContext: + outputs: + - output: pipelineArtifact + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: $(cleanMetadataFolderBeta) + inputs: + - input: pipelineArtifact + buildType: 'current' + artifactName: 'typewriter' + targetPath: '$(Build.SourcesDirectory)/typewriter' + steps: + - template: /.azure-pipelines/generation-templates/capture-metadata.yml@self parameters: - repoName: msgraph-sdk-dotnet - -- stage: stage_csharp_beta_kiota - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: csharp_beta_kiota - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'csharp' - version: 'beta' - repoName: 'msgraph-beta-sdk-dotnet' - baseBranchName : 'main' - branchName: 'kiota/$(betaBranch)' - targetClassName: "BaseGraphServiceClient" - targetNamespace: "Microsoft.Graph.Beta" - commitMessagePrefix: "feat(generation): update request builders and models" - customArguments: "-b" # Enable the backing store - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - languageSpecificSteps: - - template: generation-templates/dotnet-kiota.yml + endpoint: 'beta' + inputMetadata: $(rawMetadataFileBeta) + outputPath: $(cleanMetadataFileBetaOutputPath) + cleanMetadataFile: $(cleanMetadataFileBeta) + cleanMetadataFolder: $(cleanMetadataFolderBeta) + cleanMetadataFileWithAnnotations: $(cleanMetadataFileWithAnnotationsBeta) + metadataTypeSpecAnnotationsSource: $(metadataTypeSpecAnnotationsSource) + + - stage: stage_v1_openapi + dependsOn: stage_v1_metadata + condition: and(in(dependencies.stage_v1_metadata.result, 'Succeeded', 'Skipped'), eq( ${{ parameters.skipOpenApiCaptureAndClean }}, false)) + jobs: + - template: /.azure-pipelines/generation-templates/capture-openapi.yml@self + parameters: + endpoint: 'v1.0' + outputPath: $(cleanOpenAPIFileV1OutputPath) + cleanMetadataFolder: $(cleanOpenAPIFolderV1) + + - stage: stage_beta_openapi + dependsOn: stage_beta_metadata + condition: and(in(dependencies.stage_beta_metadata.result, 'Succeeded', 'Skipped'), eq( ${{ parameters.skipOpenApiCaptureAndClean }}, false)) + jobs: + - template: /.azure-pipelines/generation-templates/capture-openapi.yml@self + parameters: + endpoint: 'beta' + outputPath: $(cleanOpenAPIFileBetaOutputPath) + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + + - stage: stage_csharp_v1_kiota + dependsOn: + - stage_build_and_publish_kiota + - stage_v1_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: csharp_v1_kiota + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderV1)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-beta-sdk-dotnet - -- stage: stage_go_v1 - dependsOn: - - stage_build_and_publish_kiota - - stage_v1_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: go_v1 - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'go' - version: '' - repoName: 'msgraph-sdk-go' - branchName: $(v1Branch) - targetClassName: "GraphBaseServiceClient" - targetNamespace: "github.com/microsoftgraph/msgraph-sdk-go/" - customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and Enable the backing store - commitMessagePrefix: "feat(generation): update request builders and models" - cleanMetadataFolder: $(cleanOpenAPIFolderV1) - languageSpecificSteps: - - template: generation-templates/go.yml + language: 'csharp' + version: '' + repoName: 'msgraph-sdk-dotnet' + baseBranchName: 'main' + branchName: 'kiota/$(v1Branch)' + targetClassName: "BaseGraphServiceClient" + targetNamespace: "Microsoft.Graph" + commitMessagePrefix: "feat(generation): update request builders and models" + customArguments: "-b" # Enable the backing store + cleanMetadataFolder: $(cleanOpenAPIFolderV1) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/dotnet-kiota.yml@self + parameters: + repoName: msgraph-sdk-dotnet + + - stage: stage_csharp_beta_kiota + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: csharp_beta_kiota + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-sdk-go - -- stage: stage_go_beta - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: go_beta - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'go' - version: 'beta' - repoName: 'msgraph-beta-sdk-go' - branchName: $(betaBranch) - targetClassName: "GraphBaseServiceClient" - targetNamespace: "github.com/microsoftgraph/msgraph-beta-sdk-go/" - customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and Enable the backing store - commitMessagePrefix: "feat(generation): update request builders and models" - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - languageSpecificSteps: - - template: generation-templates/go.yml + language: 'csharp' + version: 'beta' + repoName: 'msgraph-beta-sdk-dotnet' + baseBranchName: 'main' + branchName: 'kiota/$(betaBranch)' + targetClassName: "BaseGraphServiceClient" + targetNamespace: "Microsoft.Graph.Beta" + commitMessagePrefix: "feat(generation): update request builders and models" + customArguments: "-b" # Enable the backing store + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/dotnet-kiota.yml@self + parameters: + repoName: msgraph-beta-sdk-dotnet + + - stage: stage_go_v1 + dependsOn: + - stage_build_and_publish_kiota + - stage_v1_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: go_v1 + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderV1)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-beta-sdk-go - -- stage: stage_java_v1_kiota - dependsOn: - - stage_build_and_publish_kiota - - stage_v1_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: java_v1_kiota - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'java' - version: '' - repoName: 'msgraph-sdk-java' - baseBranchName: 'main' - branchName: '$(v1Branch)' - targetClassName: "BaseGraphServiceClient" - targetNamespace: "com.Microsoft.Graph" - cleanMetadataFolder: $(cleanOpenAPIFolderV1) - customArguments: "-b -e '/me' -e '/me/**'" # Exclude /me/** and enable backing store - commitMessagePrefix: "feat(generation): update request builders and models" - languageSpecificSteps: - - template: generation-templates/java-kiota.yml + language: 'go' + version: '' + repoName: 'msgraph-sdk-go' + branchName: $(v1Branch) + targetClassName: "GraphBaseServiceClient" + targetNamespace: "github.com/microsoftgraph/msgraph-sdk-go/" + customArguments: "-b -e '/me' -e '/me/**'" + commitMessagePrefix: "feat(generation): update request builders and models" + cleanMetadataFolder: $(cleanOpenAPIFolderV1) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/go.yml@self + parameters: + repoName: msgraph-sdk-go + - stage: stage_go_beta + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: go_beta + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-sdk-java - namespacePath: com/microsoft/graph - -- stage: stage_java_beta_kiota - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: java_beta_kiota - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'java' - version: 'beta' - repoName: 'msgraph-beta-sdk-java' - baseBranchName: 'main' - branchName: '$(betaBranch)' - targetClassName: "BaseGraphServiceClient" - targetNamespace: "com.Microsoft.Graph.Beta" - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - customArguments: "-b -e '/me' -e '/me/**'" # Exclude /me/** and enable backing store - commitMessagePrefix: "feat(generation): update request builders and models" - languageSpecificSteps: - - template: generation-templates/java-kiota.yml + language: 'go' + version: 'beta' + repoName: 'msgraph-beta-sdk-go' + branchName: $(betaBranch) + targetClassName: "GraphBaseServiceClient" + targetNamespace: "github.com/microsoftgraph/msgraph-beta-sdk-go/" + customArguments: "-b -e '/me' -e '/me/**'" + commitMessagePrefix: "feat(generation): update request builders and models" + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/go.yml@self + parameters: + repoName: msgraph-beta-sdk-go + - stage: stage_java_v1_kiota + dependsOn: + - stage_build_and_publish_kiota + - stage_v1_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: java_v1_kiota + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderV1)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-beta-sdk-java - namespacePath: com/microsoft/graph/beta - - -- stage: stage_php_beta_kiota - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: php_beta_kiota - steps: - - template: generation-templates/language-generation-kiota.yml + language: 'java' + version: '' + repoName: 'msgraph-sdk-java' + baseBranchName: 'main' + branchName: '$(v1Branch)' + targetClassName: "BaseGraphServiceClient" + targetNamespace: "com.Microsoft.Graph" + cleanMetadataFolder: $(cleanOpenAPIFolderV1) + customArguments: "-b -e '/me' -e '/me/**'" # Exclude /me/** and enable backing store + commitMessagePrefix: "feat(generation): update request builders and models" + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/java-kiota.yml@self + parameters: + repoName: msgraph-sdk-java + namespacePath: com/microsoft/graph + - stage: stage_java_beta_kiota + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: java_beta_kiota + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self + parameters: + language: 'java' + version: 'beta' + repoName: 'msgraph-beta-sdk-java' + baseBranchName: 'main' + branchName: '$(betaBranch)' + targetClassName: "BaseGraphServiceClient" + targetNamespace: "com.Microsoft.Graph.Beta" + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + customArguments: "-b -e '/me' -e '/me/**'" # Exclude /me/** and enable backing store + commitMessagePrefix: "feat(generation): update request builders and models" + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/java-kiota.yml@self + parameters: + repoName: msgraph-beta-sdk-java + namespacePath: com/microsoft/graph/beta + - stage: stage_php_beta_kiota + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: php_beta_kiota + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: language: 'php' version: 'beta' @@ -451,25 +569,36 @@ stages: commitMessagePrefix: "feat(generation): update request builders and models" cleanMetadataFolder: $(cleanOpenAPIFolderBeta) languageSpecificSteps: - - template: generation-templates/php-kiota.yml - parameters: - repoName: msgraph-beta-sdk-php - customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and Enable the backing store - -- stage: stage_php_v1_kiota - dependsOn: - - stage_build_and_publish_kiota - - stage_v1_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: php_v1_kiota - steps: - - template: generation-templates/language-generation-kiota.yml + - template: /.azure-pipelines/generation-templates/php-kiota.yml@self + parameters: + repoName: msgraph-beta-sdk-php + customArguments: "-b -e '/me' -e '/me/**'" # Exclude /me/** and enable backing store + + - stage: stage_php_v1_kiota + dependsOn: + - stage_build_and_publish_kiota + - stage_v1_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: php_v1_kiota + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderV1)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: language: 'php' version: '' @@ -481,280 +610,375 @@ stages: commitMessagePrefix: "feat(generation): update request builders and models" cleanMetadataFolder: $(cleanOpenAPIFolderV1) languageSpecificSteps: - - template: generation-templates/php-kiota.yml - parameters: - repoName: msgraph-sdk-php - customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and Enable the backing store - -- stage: stage_typescript_v1 - dependsOn: - - stage_build_and_publish_typewriter - - stage_v1_metadata - condition: | - and - ( - eq(dependencies.stage_build_and_publish_typewriter.result, 'Succeeded'), - in(dependencies.stage_v1_metadata.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: typescript_v1 - steps: - - template: generation-templates/language-generation.yml - parameters: - language: 'TypeScript' - version: '' - repoName: 'msgraph-typescript-typings' - branchName: $(v1Branch) - cleanMetadataFile: $(cleanMetadataFileV1) - cleanMetadataFolder: $(cleanMetadataFolderV1) - languageSpecificSteps: - - template: generation-templates/typescript.yml + - template: /.azure-pipelines/generation-templates/php-kiota.yml@self + parameters: + repoName: msgraph-sdk-php + customArguments: "-b -e '/me' -e '/me/**'" # Exclude /me/** and enable backing store + + - stage: stage_typescript_v1 + dependsOn: + - stage_build_and_publish_typewriter + - stage_v1_metadata + condition: | + and + ( + eq(dependencies.stage_build_and_publish_typewriter.result, 'Succeeded'), + in(dependencies.stage_v1_metadata.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: typescript_v1 + templateContext: + inputs: + - input: pipelineArtifact + buildType: 'current' + artifactName: 'typewriter' + targetPath: '$(Build.SourcesDirectory)/typewriter' + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanMetadataFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanMetadataFolderV1)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation.yml@self parameters: + language: 'TypeScript' + version: '' repoName: 'msgraph-typescript-typings' - -- stage: stage_typescript_beta - dependsOn: - - stage_build_and_publish_typewriter - - stage_beta_metadata - condition: | - and - ( - eq(dependencies.stage_build_and_publish_typewriter.result, 'Succeeded'), - in(dependencies.stage_beta_metadata.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: typescript_beta - steps: - - template: generation-templates/language-generation.yml - parameters: - language: 'TypeScript' - version: 'beta' - repoName: 'msgraph-beta-typescript-typings' - branchName: $(betaBranch) - cleanMetadataFile: $(cleanMetadataFileBeta) - cleanMetadataFolder: $(cleanMetadataFolderBeta) - languageSpecificSteps: - - template: generation-templates/typescript.yml + branchName: $(v1Branch) + cleanMetadataFile: $(cleanMetadataFileV1) + cleanMetadataFolder: $(cleanMetadataFolderV1) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/typescript.yml@self + parameters: + repoName: 'msgraph-typescript-typings' + + - stage: stage_typescript_beta + dependsOn: + - stage_build_and_publish_typewriter + - stage_beta_metadata + condition: | + and + ( + eq(dependencies.stage_build_and_publish_typewriter.result, 'Succeeded'), + in(dependencies.stage_beta_metadata.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: typescript_beta + templateContext: + inputs: + - input: pipelineArtifact + buildType: 'current' + artifactName: 'typewriter' + targetPath: '$(Build.SourcesDirectory)/typewriter' + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanMetadataFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanMetadataFolderBeta)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation.yml@self parameters: + language: 'TypeScript' + version: 'beta' repoName: 'msgraph-beta-typescript-typings' - -- stage: stage_typescript_sdk_v1 - dependsOn: - - stage_build_and_publish_kiota - - stage_v1_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: typescript_sdk_v1 - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'typescript' - version: '' - repoName: 'msgraph-sdk-typescript' - baseBranchName : 'main' - branchName: $(v1Branch) - commitMessagePrefix: "feat(generation): update request builders and models" - targetClassName: "GraphBaseServiceClient" - targetNamespace: "github.com/microsoftgraph/msgraph-sdk-typescript/" - customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and enable backing store - cleanMetadataFolder: $(cleanOpenAPIFolderV1) - languageSpecificSteps: - - template: generation-templates/typescript-sdk.yml + branchName: $(betaBranch) + cleanMetadataFile: $(cleanMetadataFileBeta) + cleanMetadataFolder: $(cleanMetadataFolderBeta) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/typescript.yml@self + parameters: + repoName: 'msgraph-beta-typescript-typings' + + - stage: stage_typescript_sdk_v1 + dependsOn: + - stage_build_and_publish_kiota + - stage_v1_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: typescript_sdk_v1 + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderV1)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-sdk-typescript - packageName: '@microsoft/msgraph-sdk' - -- stage: stage_typescript_sdk_beta - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: typescript_sdk_beta - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'typescript' - version: 'beta' - repoName: 'msgraph-beta-sdk-typescript' - baseBranchName : 'main' - branchName: $(betaBranch) - commitMessagePrefix: "feat(generation): update request builders and models" - targetClassName: "GraphBetaBaseServiceClient" - targetNamespace: "github.com/microsoftgraph/msgraph-sdk-typescript/" - customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and enable backing store - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - languageSpecificSteps: - - template: generation-templates/typescript-sdk.yml + language: 'typescript' + version: '' + repoName: 'msgraph-sdk-typescript' + baseBranchName: 'main' + branchName: $(v1Branch) + commitMessagePrefix: "feat(generation): update request builders and models" + targetClassName: "GraphBaseServiceClient" + targetNamespace: "github.com/microsoftgraph/msgraph-sdk-typescript/" + customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and enable backing store + cleanMetadataFolder: $(cleanOpenAPIFolderV1) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/typescript-sdk.yml@self + parameters: + repoName: msgraph-sdk-typescript + packageName: '@microsoft/msgraph-sdk' + + - stage: stage_typescript_sdk_beta + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: typescript_sdk_beta + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-beta-sdk-typescript - packageName: '@microsoft/msgraph-beta-sdk' - -- stage: stage_python_v1 - dependsOn: - - stage_build_and_publish_kiota - - stage_v1_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: python_v1 - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'python' - version: '' - repoName: 'msgraph-sdk-python' - branchName: $(v1Branch) - targetClassName: "BaseGraphServiceClient" - targetNamespace: "msgraph.generated" - customArguments: "-b -e '/me' -e '/me/**'" # Enable backing store, Exclude me - cleanMetadataFolder: $(cleanOpenAPIFolderV1) - commitMessagePrefix: "feat(generation): update request builders and models" - languageSpecificSteps: - - template: generation-templates/python.yml + language: 'typescript' + version: 'beta' + repoName: 'msgraph-beta-sdk-typescript' + baseBranchName: 'main' + branchName: $(betaBranch) + commitMessagePrefix: "feat(generation): update request builders and models" + targetClassName: "GraphBetaBaseServiceClient" + targetNamespace: "github.com/microsoftgraph/msgraph-sdk-typescript/" + customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and enable backing store + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/typescript-sdk.yml@self + parameters: + repoName: msgraph-beta-sdk-typescript + packageName: '@microsoft/msgraph-beta-sdk' + + - stage: stage_python_v1 + dependsOn: + - stage_build_and_publish_kiota + - stage_v1_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_v1_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: python_v1 + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderV1) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderV1)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-sdk-python - baseDirectory: msgraph - -- stage: stage_python_beta - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: python_beta - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'python' - version: 'beta' - repoName: 'msgraph-beta-sdk-python' - branchName: $(betaBranch) - targetClassName: "BaseGraphServiceClient" - targetNamespace: "msgraph_beta.generated" - customArguments: "-b -e '/me' -e '/me/**'" # Enable backing store, Exclude me - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - commitMessagePrefix: "feat(generation): update request builders and models" - languageSpecificSteps: - - template: generation-templates/python.yml + language: 'python' + version: '' + repoName: 'msgraph-sdk-python' + branchName: $(v1Branch) + targetClassName: "BaseGraphServiceClient" + targetNamespace: "msgraph.generated" + customArguments: "-b -e '/me' -e '/me/**'" # Exclude me and enable backing store + cleanMetadataFolder: $(cleanOpenAPIFolderV1) + commitMessagePrefix: "feat(generation): update request builders and models" + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/python.yml@self + parameters: + repoName: msgraph-sdk-python + baseDirectory: msgraph + - stage: stage_python_beta + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: python_beta + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: msgraph-beta-sdk-python - baseDirectory: msgraph_beta - -- stage: stage_ccs_csharp_beta - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: csharp_beta_ccs - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'csharp' - version: 'beta' - orgName: 'microsoft' - repoName: 'Agents-M365Copilot' - baseBranchName : 'main' - branchName: 'ccs-dotnet/$(betaBranch)' - targetClassName: "BaseAgentsM365CopilotBetaServiceClient" - targetNamespace: "Microsoft.Agents.M365Copilot.Beta" - commitMessagePrefix: "feat(generation): update request builders and models for dotnet beta" - customArguments: "-b -i '**/copilot/**'" # Enable the backing store, include only copilot paths - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - pathExclusionArguments: '' - languageSpecificSteps: - - template: generation-templates/dotnet-kiota.yml + language: 'python' + version: 'beta' + repoName: 'msgraph-beta-sdk-python' + branchName: $(betaBranch) + targetClassName: "BaseGraphServiceClient" + targetNamespace: "msgraph_beta.generated" + customArguments: "-b -e '/me' -e '/me/**'" + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + commitMessagePrefix: "feat(generation): update request builders and models" + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/python.yml@self + parameters: + repoName: msgraph-beta-sdk-python + baseDirectory: msgraph_beta + - stage: stage_ccs_csharp_beta + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: csharp_beta_ccs + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: 'Agents-M365Copilot/dotnet' - packageName: Microsoft.Agents.M365Copilot.Beta - -- stage: stage_ccs_python_beta - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: python_beta_ccs - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'python' - version: 'beta' - orgName: 'microsoft' - repoName: 'Agents-M365Copilot' - baseBranchName : 'main' - branchName: 'ccs-python/$(betaBranch)' - targetClassName: "BaseAgentsM365CopilotBetaServiceClient" - targetNamespace: "microsoft_agents_m365copilot_beta.generated" - customArguments: "-b -i '**/copilot/**'" # Enable the backing store, include only copilot paths - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - commitMessagePrefix: "feat(generation): update request builders and models for python beta" - pathExclusionArguments: '' - languageSpecificSteps: - - template: generation-templates/python.yml + language: 'csharp' + version: 'beta' + orgName: 'microsoft' + repoName: 'Agents-M365Copilot' + baseBranchName: 'main' + branchName: 'ccs-dotnet/$(betaBranch)' + targetClassName: "BaseAgentsM365CopilotBetaServiceClient" + targetNamespace: "Microsoft.Agents.M365Copilot.Beta" + commitMessagePrefix: "feat(generation): update request builders and models for dotnet beta" + customArguments: "-b -i '**/copilot/**'" # Enable the backing store, include only copilot paths + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + pathExclusionArguments: '' + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/dotnet-kiota.yml@self + parameters: + repoName: 'Agents-M365Copilot/dotnet' + packageName: Microsoft.Agents.M365Copilot.Beta + - stage: stage_ccs_python_beta + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: python_beta_ccs + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: 'Agents-M365Copilot/python/packages' - baseDirectory: microsoft_agents_m365copilot_beta - -- stage: stage_ccs_typescript_beta - dependsOn: - - stage_build_and_publish_kiota - - stage_beta_openapi - condition: | - and - ( - eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), - in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') - ) - jobs: - - job: typescript_beta_ccs - steps: - - template: generation-templates/language-generation-kiota.yml - parameters: - language: 'typescript' - version: 'beta' - orgName: 'microsoft' - repoName: 'Agents-M365Copilot' - baseBranchName : 'main' - branchName: 'ccs-typescript/$(betaBranch)' - commitMessagePrefix: "feat(generation): update request builders and models for typescript beta" - targetClassName: "BaseAgentsM365CopilotBetaServiceClient" - targetNamespace: "github.com/microsoft/Agents-M365Copilot/typescript/" - customArguments: "-b -i '**/copilot/**'" # Enable the backing store, include only copilot paths - cleanMetadataFolder: $(cleanOpenAPIFolderBeta) - pathExclusionArguments: '' - languageSpecificSteps: - - template: generation-templates/ccs-typescript-sdk.yml + language: 'python' + version: 'beta' + orgName: 'microsoft' + repoName: 'Agents-M365Copilot' + baseBranchName: 'main' + branchName: 'ccs-python/$(betaBranch)' + targetClassName: "BaseAgentsM365CopilotBetaServiceClient" + targetNamespace: "microsoft_agents_m365copilot_beta.generated" + customArguments: "-b -i '**/copilot/**'" # Enable the backing store, include only copilot paths + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + commitMessagePrefix: "feat(generation): update request builders and models for python beta" + pathExclusionArguments: '' + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/python.yml@self + parameters: + repoName: 'Agents-M365Copilot/python/packages' + baseDirectory: microsoft_agents_m365copilot_beta/microsoft_agents_m365copilot_beta + - stage: stage_ccs_typescript_beta + dependsOn: + - stage_build_and_publish_kiota + - stage_beta_openapi + condition: | + and + ( + eq(dependencies.stage_build_and_publish_kiota.result, 'Succeeded'), + in(dependencies.stage_beta_openapi.result, 'Succeeded', 'Skipped') + ) + jobs: + - job: typescript_beta_ccs + templateContext: + inputs: + - input: pipelineArtifact + displayName: 'Downloading metadata from artifacts' + buildType: 'current' + artifactName: $(cleanOpenAPIFolderBeta) + targetPath: '$(Build.SourcesDirectory)/msgraph-metadata/$(cleanOpenAPIFolderBeta)' + - input: pipelineArtifact + buildType: 'current' + artifactName: 'kiota' + targetPath: '$(kiotaDirectory)' + steps: + - template: /.azure-pipelines/generation-templates/language-generation-kiota.yml@self parameters: - repoName: 'Agents-M365Copilot/typescript' - packageName: '@microsoft/agents-m365copilot-beta' + language: 'typescript' + version: 'beta' + orgName: 'microsoft' + repoName: 'Agents-M365Copilot' + baseBranchName: 'main' + branchName: 'ccs-typescript/$(betaBranch)' + commitMessagePrefix: "feat(generation): update request builders and models for typescript beta" + targetClassName: "BaseAgentsM365CopilotBetaServiceClient" + targetNamespace: "github.com/microsoft/Agents-M365Copilot/typescript/" + customArguments: "-b -i '**/copilot/**'" + cleanMetadataFolder: $(cleanOpenAPIFolderBeta) + pathExclusionArguments: '' + languageSpecificSteps: + - template: /.azure-pipelines/generation-templates/ccs-typescript-sdk.yml@self + parameters: + repoName: 'Agents-M365Copilot/typescript' + packageName: '@microsoft/agents-m365copilot-beta' diff --git a/.azure-pipelines/generation-templates/build-and-publish-kiota.yml b/.azure-pipelines/generation-templates/build-and-publish-kiota.yml index 3cbf74aad..ae4886e92 100644 --- a/.azure-pipelines/generation-templates/build-and-publish-kiota.yml +++ b/.azure-pipelines/generation-templates/build-and-publish-kiota.yml @@ -1,5 +1,5 @@ steps: -- template: use-dotnet-sdk.yml +- template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self parameters: version: "9.x" #kiota uses a net9 target @@ -15,9 +15,4 @@ steps: sourceFolder: '$(Build.SourcesDirectory)/src/kiota/bin/$(BuildConfiguration)/net9.0' contents: '**/*' targetFolder: '$(Build.ArtifactStagingDirectory)' - displayName: Copy Kiota executable - -- task: PublishBuildArtifacts@1 - inputs: - pathToPublish: '$(Build.ArtifactStagingDirectory)' - artifactName: kiota + displayName: Copy Kiota executable \ No newline at end of file diff --git a/.azure-pipelines/generation-templates/build-and-publish-typewriter.yml b/.azure-pipelines/generation-templates/build-and-publish-typewriter.yml index f18ddb91d..c97daff63 100644 --- a/.azure-pipelines/generation-templates/build-and-publish-typewriter.yml +++ b/.azure-pipelines/generation-templates/build-and-publish-typewriter.yml @@ -1,6 +1,5 @@ steps: -- template: use-dotnet-sdk.yml - +- template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self - checkout: self displayName: checkout generator fetchDepth: 1 @@ -15,9 +14,4 @@ steps: sourceFolder: '$(Build.SourcesDirectory)/src/Typewriter/bin/$(BuildConfiguration)/net8.0' contents: '**/*' targetFolder: '$(Build.ArtifactStagingDirectory)' - displayName: Copy Typewriter executable - -- task: PublishBuildArtifacts@1 - inputs: - pathToPublish: '$(Build.ArtifactStagingDirectory)' - artifactName: typewriter + displayName: Copy Typewriter executable \ No newline at end of file diff --git a/.azure-pipelines/generation-templates/capture-metadata.yml b/.azure-pipelines/generation-templates/capture-metadata.yml index 546761ae4..96637da28 100644 --- a/.azure-pipelines/generation-templates/capture-metadata.yml +++ b/.azure-pipelines/generation-templates/capture-metadata.yml @@ -45,8 +45,8 @@ steps: fetchDepth: 1 persistCredentials: true -- template: checkout-metadata.yml -- template: set-user-config.yml +- template: /.azure-pipelines/generation-templates/checkout-metadata.yml@self +- template: /.azure-pipelines/generation-templates/set-user-config.yml@self # required for TypeSpec - task: UseNode@1 @@ -76,14 +76,10 @@ steps: inputMetadataFile: ${{ parameters.inputMetadata }} enabled: true -- template: download-typewriter.yml - # required for typewriter -- template: use-dotnet-sdk.yml +- template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self parameters: version: '8.x' - -## Only run if the previous step was successful - pwsh: '$(scriptsDirectory)/run-typewriter-clean-metadata.ps1' env: OutputPath: ${{ parameters.outputPath }} @@ -153,20 +149,11 @@ steps: contents: '**/*' targetFolder: '$(Build.ArtifactStagingDirectory)' displayName: Copy generated metadata - -- task: PublishBuildArtifacts@1 - inputs: - pathToPublish: '$(Build.ArtifactStagingDirectory)' - artifactName: ${{ parameters.cleanMetadataFolder }} - -# Use the clean metadata from the last step to generate DotNet files. - -# required for the hidi installation validation -- template: use-dotnet-sdk.yml +- template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self parameters: version: '9.x' -- pwsh: dotnet tool install --global Microsoft.OpenApi.Hidi --version 1.6.24 +- pwsh: dotnet tool install --global Microsoft.OpenApi.Hidi --version 1.6.24 displayName: 'Install hidi tool' # verify that generated metadata is parsable as an Edm model diff --git a/.azure-pipelines/generation-templates/capture-openapi.yml b/.azure-pipelines/generation-templates/capture-openapi.yml index 2a08868ca..617931c8d 100644 --- a/.azure-pipelines/generation-templates/capture-openapi.yml +++ b/.azure-pipelines/generation-templates/capture-openapi.yml @@ -1,9 +1,7 @@ -# Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information. -# contains an end to end validation pipeline using C# compilation tests for staging beta metadata - -# capture-metadata.yml will result in the capture and cleaning of the metadata -# with the artifacts posted to GitHub. +# Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information. +# The following template creates multiple artifacts from a matrix, this is the intended behavior to follow the same workflow before the governance migration +# For more information please refer to: https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator/pull/1377#discussion_r2271024012 parameters: - name: 'endpoint' type: string @@ -13,7 +11,6 @@ parameters: default: $(System.ArtifactsDirectory) - name: 'cleanMetadataFolder' type: string - jobs: - job: get_conversion_settings displayName: "Get conversion settings" @@ -23,8 +20,7 @@ jobs: fetchDepth: 1 persistCredentials: true - - template: checkout-metadata.yml - + - template: /.azure-pipelines/generation-templates/checkout-metadata.yml@self - pwsh: | $dirPath = "./conversion-settings" $endpoint = "${{ parameters.endpoint }}" @@ -41,10 +37,8 @@ jobs: Write-Host "##vso[task.setvariable variable=targets;isOutput=true]$json" name: setTargets workingDirectory: $(Build.SourcesDirectory)/msgraph-metadata - - script: echo $(setTargets.targets) displayName: "Print settings" - - job: convert_openapi dependsOn: get_conversion_settings displayName: Convert @@ -52,27 +46,30 @@ jobs: matrix: $[ dependencies.get_conversion_settings.outputs['setTargets.targets'] ] variables: targets: $[ dependencies.get_conversion_settings.outputs['setTargets.targets'] ] - + templateContext: + outputs: + - output: pipelineArtifact + targetPath: '$(Build.ArtifactStagingDirectory)/$(Name)' + artifactName: '${{ parameters.cleanMetadataFolder }}-$(Name)' steps: - # We only need the scripts - checkout: self displayName: checkout generator fetchDepth: 1 persistCredentials: true - - template: checkout-metadata.yml + - template: /.azure-pipelines/generation-templates/checkout-metadata.yml@self # required for the hidi to run - - template: use-dotnet-sdk.yml + - template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self parameters: version: '8.x' - # required for the hidi installation validation - - template: use-dotnet-sdk.yml +# required for the hidi installation validation + - template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self parameters: version: '9.x' - - pwsh: dotnet tool install --global Microsoft.OpenApi.Hidi --version 1.6.24 + - pwsh: dotnet tool install --global Microsoft.OpenApi.Hidi --version 1.6.24 displayName: install hidi - pwsh: | @@ -90,14 +87,8 @@ jobs: inputs: sourceFolder: ${{ parameters.outputPath }} contents: '**/$(Name).yaml' - targetFolder: '$(Build.ArtifactStagingDirectory)' + targetFolder: '$(Build.ArtifactStagingDirectory)/$(Name)' displayName: Copy generated metadata - - - task: PublishBuildArtifacts@1 - inputs: - pathToPublish: '$(Build.ArtifactStagingDirectory)' - artifactName: ${{ parameters.cleanMetadataFolder }} - - pwsh: | ./scripts/run-openapi-validation.ps1 -repoDirectory (Get-Location).Path -version "${{ parameters.endpoint }}" -platformName "$(Name)" displayName: ensure that OpenAPI docs can be parsed @@ -107,21 +98,55 @@ jobs: - job: publish_openapi dependsOn: convert_openapi displayName: Publish + ## If there's new settings added please add them here too + templateContext: + inputs: + - input: pipelineArtifact + artifactName: '${{ parameters.cleanMetadataFolder }}-default' + targetPath: '$(Build.SourcesDirectory)/artifacts' + - input: pipelineArtifact + artifactName: '${{ parameters.cleanMetadataFolder }}-graphexplorer' + targetPath: '$(Build.SourcesDirectory)/artifacts' + - input: pipelineArtifact + artifactName: '${{ parameters.cleanMetadataFolder }}-openapi' + targetPath: '$(Build.SourcesDirectory)/artifacts' + - input: pipelineArtifact + artifactName: '${{ parameters.cleanMetadataFolder }}-powershell_v2' + targetPath: '$(Build.SourcesDirectory)/artifacts' + outputs: + - output: pipelineArtifact + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: ${{ parameters.cleanMetadataFolder }} steps: # We only need the scripts - checkout: self displayName: checkout generator fetchDepth: 1 persistCredentials: true - - - template: checkout-metadata.yml - - template: set-user-config.yml - - task: DownloadPipelineArtifact@2 + # Copy files from the maxtrix artifacts to a single folder + - task: CopyFiles@2 inputs: - path: $(Build.SourcesDirectory)/msgraph-metadata/openapi/${{ parameters.endpoint }} - artifact: ${{ parameters.cleanMetadataFolder }} + sourceFolder: '$(Build.SourcesDirectory)/artifacts' + contents: '**/*.yaml' + targetFolder: '$(Build.ArtifactStagingDirectory)' + displayName: Copy artifact metadata + # Copy files from the target path where artifacts should be downloaded + - task: CopyFiles@2 + inputs: + sourceFolder: '$(Build.ArtifactStagingDirectory)' + contents: '**/*.yaml' + targetFolder: '$(Build.SourcesDirectory)/msgraph-metadata/openapi/${{ parameters.endpoint }}' + displayName: Copy downloaded metadata - # Checkin clean metadata into metadata repo or make it an artifact. + # publish metadata as an artifact + - task: CopyFiles@2 + inputs: + sourceFolder: ${{ parameters.outputPath }} + contents: '**/*.yaml' + targetFolder: '$(Build.ArtifactStagingDirectory)' + displayName: Copy downloaded metadata + - template: /.azure-pipelines/generation-templates/checkout-metadata.yml@self + - template: /.azure-pipelines/generation-templates/set-user-config.yml@self - pwsh: '$(scriptsDirectory)/git-push-cleanmetadata.ps1' displayName: push clean ${{ parameters.endpoint }} OpenAPI description to msgraph-metadata repo diff --git a/.azure-pipelines/generation-templates/download-kiota.yml b/.azure-pipelines/generation-templates/download-kiota.yml index 3e34b4e87..3ec33e096 100644 --- a/.azure-pipelines/generation-templates/download-kiota.yml +++ b/.azure-pipelines/generation-templates/download-kiota.yml @@ -1,9 +1,5 @@ +# This Yaml Document has been converted by ESAI Yaml Pipeline Conversion Tool. +# Please make sure to check all the converted content, it is your team's responsibility to make sure that the pipeline is still valid and functions as expected. +# The 'DownloadBuildArtifacts@0' tasks have been converted to inputs within the `templateContext` section of each job. steps: -- task: DownloadBuildArtifacts@0 - inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'kiota' - downloadPath: '$(Build.SourcesDirectory)' - -- bash: chmod +x $(Build.SourcesDirectory)/kiota/kiota +- bash: chmod +x $(Build.SourcesDirectory)/kiota/kiota \ No newline at end of file diff --git a/.azure-pipelines/generation-templates/download-typewriter.yml b/.azure-pipelines/generation-templates/download-typewriter.yml index 3e7960ab3..05e32557c 100644 --- a/.azure-pipelines/generation-templates/download-typewriter.yml +++ b/.azure-pipelines/generation-templates/download-typewriter.yml @@ -1,7 +1,4 @@ -steps: -- task: DownloadBuildArtifacts@0 - inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'typewriter' - downloadPath: '$(Build.SourcesDirectory)' +# This Yaml Document has been converted by ESAI Yaml Pipeline Conversion Tool. +# Please make sure to check all the converted content, it is your team's responsibility to make sure that the pipeline is still valid and functions as expected. +# The 'DownloadBuildArtifacts@0' tasks have been converted to inputs within the `templateContext` section of each job. +steps: [] \ No newline at end of file diff --git a/.azure-pipelines/generation-templates/language-generation-kiota.yml b/.azure-pipelines/generation-templates/language-generation-kiota.yml index 2e1ec30ad..aedeb6c82 100644 --- a/.azure-pipelines/generation-templates/language-generation-kiota.yml +++ b/.azure-pipelines/generation-templates/language-generation-kiota.yml @@ -57,11 +57,9 @@ parameters: default: "-e '/copilot' -e '/copilot/**'" steps: -- template: set-up-for-generation-kiota.yml +- template: /.azure-pipelines/generation-templates/set-up-for-generation-kiota.yml@self parameters: cleanMetadataFolder: ${{ parameters.cleanMetadataFolder }} - downloadSteps: - - template: download-kiota.yml - checkout: ${{ parameters.repoName }} displayName: 'checkout ${{ parameters.repoName }}' @@ -89,8 +87,16 @@ steps: RepoDirectory: $(Build.SourcesDirectory)/${{ parameters.repoName }} BranchName: ${{ parameters.branchName }} workingDirectory: ${{ parameters.repoName }} - -- bash: '$(kiotaDirectory)/kiota generate --openapi $(Build.SourcesDirectory)/msgraph-metadata/${{ parameters.cleanMetadataFolder }}/openapi.yaml --language ${{ parameters.language }} -o $(kiotaDirectory)/output -n ${{ parameters.targetNamespace }} -c ${{ parameters.targetClassName }} ${{ parameters.customArguments }} ${{ parameters.pathExclusionArguments }}' +- pwsh: | + Write-Host "=== Files in Kiota Directory ===" + Write-Host "Kiota Directory: $(kiotaDirectory)" + if (Test-Path "$(kiotaDirectory)") { + Get-ChildItem "$(kiotaDirectory)" -Recurse | Format-Table Name, FullName, Length, LastWriteTime -AutoSize + } else { + Write-Warning "Kiota directory not found: $(kiotaDirectory)" + } + displayName: 'List files in Kiota directory' +- pwsh: '& "$(kiotaDirectory)/kiota.exe" generate --openapi "$(Build.SourcesDirectory)/msgraph-metadata/${{ parameters.cleanMetadataFolder }}/openapi.yaml" --language "${{ parameters.language }}" -o "$(kiotaDirectory)/output" -n "${{ parameters.targetNamespace }}" -c "${{ parameters.targetClassName }}" ${{ parameters.customArguments }} ${{ parameters.pathExclusionArguments }}' displayName: 'Run Kiota for ${{ parameters.language }} ${{ parameters.version }}' env: KIOTA_GENERATION:EXPORTPUBLICAPI: ${{ parameters.exportDom }} diff --git a/.azure-pipelines/generation-templates/language-generation.yml b/.azure-pipelines/generation-templates/language-generation.yml index 0d7aa4757..f172dd678 100644 --- a/.azure-pipelines/generation-templates/language-generation.yml +++ b/.azure-pipelines/generation-templates/language-generation.yml @@ -34,12 +34,9 @@ parameters: displayName: Generate PR after publish changes? steps: -- template: set-up-for-generation.yml +- template: /.azure-pipelines/generation-templates/set-up-for-generation.yml@self parameters: cleanMetadataFolder: ${{ parameters.cleanMetadataFolder }} - downloadSteps: - - template: download-typewriter.yml - - checkout: ${{ parameters.repoName }} displayName: 'checkout ${{ parameters.repoName }}' fetchDepth: 1 @@ -67,7 +64,7 @@ steps: TypewriterExecutable: $(typewriterExecutable) TypewriterDirectory: $(typewriterDirectory) Language: ${{ parameters.language }} - Endpoint: ${{ parameters.version }} + Endpoint: ${{ parameters.version }} displayName: 'Run Typewriter for ${{ parameters.language }} ${{ parameters.version }}' - ${{ parameters.languageSpecificSteps }} diff --git a/.azure-pipelines/generation-templates/set-up-for-generation-kiota.yml b/.azure-pipelines/generation-templates/set-up-for-generation-kiota.yml index 62b8eb9e5..5b2050d06 100644 --- a/.azure-pipelines/generation-templates/set-up-for-generation-kiota.yml +++ b/.azure-pipelines/generation-templates/set-up-for-generation-kiota.yml @@ -1,20 +1,13 @@ parameters: - - name: cleanMetadataFolder - type: string - - name: downloadSteps - type: stepList - default: - - pwsh: | - Write-Error "No download step is provided" +- name: cleanMetadataFolder + type: string steps: -- template: set-user-config.yml -- template: use-dotnet-sdk.yml +- template: /.azure-pipelines/generation-templates/set-user-config.yml@self +- template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self parameters: version: "9.x" #kiota uses a net9 target -- ${{ parameters.downloadSteps }} - # checkout metadata repo if capture and clean step is skipped - checkout: msgraph-metadata displayName: checkout metadata @@ -30,16 +23,3 @@ steps: Move-Item -Path $(Build.SourcesDirectory)/msgraph-metadata/openapi/beta/openapi.yaml -Destination $(Build.SourcesDirectory)/msgraph-metadata/clean_beta_openapi/ displayName: Move metadata to expected location condition: or(eq(variables.skipMetadataCaptureAndClean, true), eq(variables.skipOpenApiCaptureAndClean, true)) - -# if capture and clean step is not skipped -# then download the artifact from capture and clean steps -# follow the same folder structure as msgraph-metadata repo -# so that metadata reference path is always the same -- task: DownloadBuildArtifacts@0 - inputs: - buildType: 'current' - downloadType: 'single' - artifactName: ${{ parameters.cleanMetadataFolder }} - downloadPath: '$(Build.SourcesDirectory)/msgraph-metadata' - condition: and(eq(variables.skipMetadataCaptureAndClean, false), eq(variables.skipOpenApiCaptureAndClean, false)) - displayName: Downloading metadata from artifacts diff --git a/.azure-pipelines/generation-templates/set-up-for-generation.yml b/.azure-pipelines/generation-templates/set-up-for-generation.yml index 0cfc4daec..4536f99c3 100644 --- a/.azure-pipelines/generation-templates/set-up-for-generation.yml +++ b/.azure-pipelines/generation-templates/set-up-for-generation.yml @@ -1,16 +1,10 @@ parameters: - name: cleanMetadataFolder type: string - - name: downloadSteps - type: stepList - default: - - pwsh: | - Write-Error "No download step is provided" steps: -- template: set-user-config.yml -- template: use-dotnet-sdk.yml -- ${{ parameters.downloadSteps }} +- template: /.azure-pipelines/generation-templates/set-user-config.yml@self +- template: /.azure-pipelines/generation-templates/use-dotnet-sdk.yml@self # checkout metadata repo if capture and clean step is skipped - checkout: msgraph-metadata @@ -19,16 +13,3 @@ steps: persistCredentials: true submodules: recursive condition: or(eq(variables.skipMetadataCaptureAndClean, true), eq(variables.skipOpenApiCaptureAndClean, true)) - -# if capture and clean step is not skipped -# then download the artifact from capture and clean steps -# follow the same folder structure as msgraph-metadata repo -# so that metadata reference path is always the same -- task: DownloadBuildArtifacts@0 - inputs: - buildType: 'current' - downloadType: 'single' - artifactName: ${{ parameters.cleanMetadataFolder }} - downloadPath: '$(Build.SourcesDirectory)/msgraph-metadata' - condition: and(eq(variables.skipMetadataCaptureAndClean, false), eq(variables.skipOpenApiCaptureAndClean, false)) - displayName: Downloading metadata from artifacts diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 625d1eef1..7a6aac7e4 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -46,7 +46,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: submodules: recursive diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 208edc3a8..b060ce79c 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -12,11 +12,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: recursive - name: Setup .NET - uses: actions/setup-dotnet@v4.3.1 + uses: actions/setup-dotnet@v5.0.0 with: dotnet-version: 8.0.x - name: Restore dependencies diff --git a/scripts/create-pull-request.ps1 b/scripts/create-pull-request.ps1 index 3478a084a..6b4571f30 100644 --- a/scripts/create-pull-request.ps1 +++ b/scripts/create-pull-request.ps1 @@ -9,8 +9,16 @@ if (($env:GeneratePullRequest -eq $False)) { # Skip CI if manually running this return; } +# Special case for beta typings as it uses a non-conforming preview versioning. +if ($env:RepoName.Contains("msgraph-beta-typescript-typings")) +{ + $title = "feat: generated $version models and request builders" +} +else { + $title = "Generated $version models and request builders" +} + $version = $env:Version -$title = "Generated $version models and request builders" $body = ":bangbang:**_Important_**:bangbang:
Check for unexpected deletions or changes in this PR and ensure relevant CI checks are passing.

**Note:** This pull request was automatically created by Azure pipelines." $baseBranchParameter = "" diff --git a/submodules/vipr b/submodules/vipr index c5c220440..0921e5504 160000 --- a/submodules/vipr +++ b/submodules/vipr @@ -1 +1 @@ -Subproject commit c5c2204400b27503a3b9fb75a36b5a3cf9ed90f0 +Subproject commit 0921e550479b18d11ccccc4f21ce4c72c8170b9b