trigger: - master - release/* variables: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true IsDevBuild: $[startsWith(variables['Build.SourceBranch'], 'refs/pull/')] UploadCentronArtifacts: $[or(startsWith(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'))] pool: Default steps: - task: DownloadSecureFile@1 name: codeSigningCertificate displayName: 'Download Code Signing Certificate' inputs: secureFile: 'c-entron code signing certificate.pfx' - script: 'dotnet run --project "./scripts/Centron.Scripts/Centron.Scripts.csproj" -- setup-versioning 2>&1' displayName: 'Setup Versioning' env: CENTRON_BUILD_IS_DEV_BUILD: $(IsDevBuild) - powershell: | $versionNumber = [Version][string] (& "$env:BUILD_SOURCESDIRECTORY\dotnettools\nbgv.exe" get-version -v Version 2>&1); $isPullRequestBuild = $env:BUILD_REASON -eq 'PullRequest'; $version = if ($isPullRequestBuild) { "$versionNumber (PR)" } else { "$versionNumber" }; Write-Host "##vso[build.updatebuildnumber]$version" displayName: 'Set Azure DevOps Build Version' workingDirectory: '"./deployment/centron"' - script: 'dotnet run --project "./scripts/Centron.Scripts/Centron.Scripts.csproj" -- build-installer create-nuget-packages end-to-end-tests 2>&1' displayName: Build env: CENTRON_BUILD_RUNNING_IN_AZURE_PIPELINE: true CENTRON_BUILD_IS_DEV_BUILD: $(IsDevBuild) CENTRON_BUILD_CODE_SIGNING_CERTIFICATE: $(codeSigningCertificate.secureFilePath) CENTRON_BUILD_CODE_SIGNING_CERTIFICATE_PASSWORD: $(codeSigningCertificatePassword) - task: PublishTestResults@2 displayName: 'Publish Test: c-entron EndToEnd Tests' inputs: testResultsFormat: VSTest testResultsFiles: 'artifacts/EndToEndTests/TestResults.trx' testRunTitle: 'c-entron EndToEnd Tests' buildConfiguration: 'Release' failTaskOnFailedTests: true - task: NuGetCommand@2 condition: and(succeeded(), eq(variables.UploadCentronArtifacts, true)) displayName: 'Deploy Artifact: Centron.WebServices.Core Nuget Package (NuGet)' continueOnError: true inputs: command: push nuGetFeedType: external publishFeedCredentials: 'c-entron NuGet Server' allowPackageConflicts: true packagesToPush: 'artifacts/nuget/Centron.WebServices.Core.*.nupkg' - task: NuGetCommand@2 condition: and(succeeded(), eq(variables.UploadCentronArtifacts, true)) displayName: 'Deploy Artifact: Centron.Interfaces Nuget Package (NuGet)' continueOnError: true inputs: command: push nuGetFeedType: external publishFeedCredentials: 'c-entron NuGet Server' allowPackageConflicts: true packagesToPush: 'artifacts/nuget/Centron.Interfaces.*.nupkg' - task: NuGetCommand@2 condition: and(succeeded(), eq(variables.UploadCentronArtifacts, true)) displayName: 'Deploy Artifact: Centron.Core Nuget Package (NuGet)' continueOnError: true inputs: command: push nuGetFeedType: external publishFeedCredentials: 'c-entron NuGet Server' allowPackageConflicts: true packagesToPush: 'artifacts/nuget/Centron.Core.*.nupkg' - task: NuGetCommand@2 condition: and(succeeded(), eq(variables.UploadCentronArtifacts, true)) displayName: 'Deploy Artifact: Centron.Controls Nuget Package (NuGet)' continueOnError: true inputs: command: push nuGetFeedType: external publishFeedCredentials: 'c-entron NuGet Server' allowPackageConflicts: true packagesToPush: 'artifacts/nuget/Centron.Controls.*.nupkg' - task: PublishPipelineArtifact@1 displayName: 'Upload Artifact: c-entron.NET Installer' inputs: targetPath: './artifacts/c-entron.NET Installer.zip' artifactName: 'c-entron.NET Installer' - task: razorspoint.rp-build-release-pnptasks.RP-PnPPowerShell.PnPPowerShell@3 condition: and(succeeded(), eq(variables.UploadCentronArtifacts, true)) displayName: 'Deploy Artifact: c-entron.NET Installer' continueOnError: true inputs: SharePointVersion: SpOnline sharepointConntection: 'Software Builds - SharePoint' FileOrInline: Inline RequiredVersion: '3.23.2007.1' PnPPowerShellInline: | cd deployment/centron; $version = [Version][string] (& "$env:BUILD_SOURCESDIRECTORY\dotnettools\nbgv.exe" get-version -v Version 2>&1) $mainVersion = $version.ToString(3) $file = Add-PnpFile -Folder "/Shared Documents/c-entron.NET/v$mainVersion/v$version" -Path "..\..\artifacts\c-entron.NET Installer.zip" - task: PublishPipelineArtifact@1 displayName: 'Upload Artifact: c-entron Web-Service Installer' inputs: targetPath: './artifacts/c-entron Web-Service Installer.zip' artifactName: 'c-entron Web-Service Installer' - task: razorspoint.rp-build-release-pnptasks.RP-PnPPowerShell.PnPPowerShell@3 condition: and(succeeded(), eq(variables.UploadCentronArtifacts, true)) displayName: 'Deploy Artifact: c-entron Web-Service Installer' continueOnError: true inputs: SharePointVersion: SpOnline sharepointConntection: 'Software Builds - SharePoint' FileOrInline: Inline RequiredVersion: '3.23.2007.1' PnPPowerShellInline: | cd deployment/centron; $version = [Version][string] (& "$env:BUILD_SOURCESDIRECTORY\dotnettools\nbgv.exe" get-version -v Version 2>&1) $mainVersion = $version.ToString(3) $file = Add-PnpFile -Folder "/Shared Documents/c-entron Web-Service/v$mainVersion/v$version" -Path "..\..\artifacts\c-entron Web-Service Installer.zip" - task: PublishPipelineArtifact@1 displayName: 'Upload Artifact: c-entron Web-Service Dependencies' inputs: targetPath: './artifacts/c-entron Web-Service Dependencies.txt' artifactName: 'c-entron Web-Service Dependencies' - task: PublishPipelineArtifact@1 displayName: 'Upload Artifact: c-entron.NET Dependencies' inputs: targetPath: './artifacts/c-entron.NET Dependencies.txt' artifactName: 'c-entron.NET Dependencies' - task: PublishPipelineArtifact@1 displayName: 'Upload Artifact: Nuget Packages' inputs: targetPath: './artifacts/nuget' artifactName: 'Nuget Packages'