azure-pipelines.yaml (160 lines of code) (raw):

name: $(Build.SourceBranchName)_$(Build.Reason)_$(majorVersion).$(Build.BuildId)$(Rev:.r) variables: buildConfiguration: Release majorVersion: 0.0.0 isReleaseTriggered: $[startsWith(variables['Build.SourceBranch'], 'refs/heads/action/release')] isMasterTriggered: $[startsWith(variables['Build.SourceBranch'], 'refs/heads/master')] Codeql.Enabled: true # Enable PR validation on branches master and dev pr: branches: include: - master - dev # Enable CI on branches master and dev # Batch builds trigger: batch: true branches: include: - dev - master schedules: - cron: '0 12 * * 0' displayName: Weekly Sunday build branches: include: - master always: true continueOnError: false pool: name: 1ES-Hosted-Azfunc demands: - ImageOverride -equals MMSUbuntu20.04TLS steps: - task: UseDotNet@2 displayName: 'Install .NET Core SDK' inputs: version: 3.1.x packageType: sdk - task: UseDotNet@2 displayName: 'Install .NET 6.0' inputs: version: 6.x packageType: sdk - task: DotNetCoreCLI@2 displayName: Build project inputs: command: 'build' arguments: '--configuration Release -p:IsLocalBuild=False' projects: src/Microsoft.Azure.WebJobs.Extensions.Kafka/Microsoft.Azure.WebJobs.Extensions.Kafka.csproj - task: DotNetCoreCLI@2 displayName: Build test projects inputs: command: 'build' arguments: '--configuration Release -p:IsLocalBuild=False' projects: | test/Microsoft.Azure.WebJobs.Extensions.Kafka.UnitTests/Microsoft.Azure.WebJobs.Extensions.Kafka.UnitTests.csproj test/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests.csproj test/Microsoft.Azure.WebJobs.Extensions.Kafka.LangEndToEndTests/Microsoft.Azure.WebJobs.Extensions.Kafka.LangEndToEndTests.csproj - task: DotNetCoreCLI@2 displayName: Run unit tests inputs: command: test projects: ./test/Microsoft.Azure.WebJobs.Extensions.Kafka.UnitTests - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 displayName: Component Detection - task: Bash@3 displayName: Start Kafka in single node inputs: targetType: filePath filePath: ./test/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests/start-kafka-test-environment.sh workingDirectory: test/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests - task: DotNetCoreCLI@2 displayName: Run e2e tests inputs: command: test projects: ./test/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests - task: Bash@3 displayName: Stop Kafka in single node inputs: targetType: filePath filePath: ./test/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests/stop-kafka-test-environment.sh workingDirectory: test/Microsoft.Azure.WebJobs.Extensions.Kafka.EndToEndTests - task: EsrpCodeSigning@1 displayName: Sign extension assembly condition: and(succeeded(), eq(variables.isReleaseTriggered, 'True')) inputs: connectedServiceName: ESRP Service folderPath: src/Microsoft.Azure.WebJobs.Extensions.Kafka/bin/Debug/netstandard2.0/ pattern: Microsoft.Azure.WebJobs.Extensions.Kafka.dll signConfigType: inlineSignParams inlineOperation: | [ { "KeyCode": "CP-230012", "OperationCode": "SigntoolSign", "Parameters": { "OpusName": "Microsoft", "OpusInfo": "http://www.microsoft.com", "FileDigest": "/fd \"SHA256\"", "PageHash": "/NPH", "TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256" }, "ToolName": "sign", "ToolVersion": "1.0" }, { "KeyCode": "CP-230012", "OperationCode": "SigntoolVerify", "Parameters": {}, "ToolName": "sign", "ToolVersion": "1.0" } ] - task: Bash@3 displayName: Package current source as NuGet package and pack it in Docker inputs: targetType: filePath filePath: ./script/create_package.sh # - task: DotNetCoreCLI@2 # displayName: Run language e2e tests # condition: and(succeeded(), eq(variables.isMasterTriggered, 'False')) # Skip in master until we fix the connections # inputs: # command: test # projects: ./test/Microsoft.Azure.WebJobs.Extensions.Kafka.LangEndToEndTests # env: # AZURE_CLIENT_ID: $(AZURE_CLIENT_ID) # AZURE_CLIENT_SECRET: $(AZURE_CLIENT_SECRET) # AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID) # AZURE_TENANT_ID: $(AZURE_TENANT_ID) # AzureWebJobsStorage: $(AzureWebJobsStorage) # ConfluentBrokerList: $(ConfluentBrokerList) # ConfluentCloudPassword: $(ConfluentCloudPassword) # ConfluentCloudUsername: $(ConfluentCloudUsername) # EventHubBrokerList: $(EventHubBrokerList) # EventHubConnectionString: $(EventHubConnectionString) # DisableConfluentTestsFlag: $(DisableConfluentTestsFlag) # DisableEventHubsTestsFlag: $(DisableEventHubsTestsFlag) - task: DotNetCoreCLI@2 displayName: Pack NuGet package inputs: command: pack packDirectory: '$(Build.ArtifactStagingDirectory)' searchPatternPack: src/Microsoft.Azure.WebJobs.Extensions.Kafka/Microsoft.Azure.WebJobs.Extensions.Kafka.csproj configurationToPack: Release includesymbols: true - task: EsrpCodeSigning@1 displayName: Sign extension package condition: and(succeeded(), eq(variables.isReleaseTriggered, 'True')) inputs: connectedServiceName: ESRP Service folderPath: $(Build.ArtifactStagingDirectory) pattern: Microsoft.Azure.WebJobs.Extensions.Kafka.*.nupkg signConfigType: inlineSignParams inlineOperation: | [ { "KeyCode": "CP-230012", "OperationCode": "NuGetSign", "Parameters": {}, "ToolName": "sign", "ToolVersion": "1.0" }, { "KeyCode": "CP-230012", "OperationCode": "NuGetVerify", "Parameters": {}, "ToolName": "sign", "ToolVersion": "1.0" } ] - task: ManifestGeneratorTask@0 displayName: SBOM Generation Task inputs: BuildDropPath: $(Build.ArtifactStagingDirectory) PackageName: Microsoft.Azure.WebJobs.Extensions.Kafka Verbosity: Information - task: PublishBuildArtifacts@1 inputs: pathToPublish: $(Build.ArtifactStagingDirectory) artifactName: drop publishLocation: Container