Files
Masterarbeit/QuellCode/CentronERP/azure/build-pipeline.yml
T
Christoph Schwörer f045b99a25 Codebasis als Dateien ins Arbeitsrepo statt als Gitlink
QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
2026-08-26 07:43:51 +02:00

151 lines
6.0 KiB
YAML

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'