# azure-pipelines.yml pr: none trigger: branches: include: - main - dev_initialrequest paths: include: - 'Solutions/**' parameters: - name: BaseDir type: string default: $(Build.SourcesDirectory) - name: SuiteRarShare type: string default: '\\m42-sto-ffm01.matrix42.de\ServiceStore\Builds\TitanLinux Continuous' - name: RepoName type: string default: 'ImagoverumFleetManagement' variables: - name: BaseDir value: ${{ parameters.BaseDir }} - name: ExtensionTarget value: ${{ parameters.BaseDir }}/${{ parameters.RepoName }} - name: BackendDir value: $(ExtensionTarget)/Solutions/FleetManagement - name: SolutionPath value: $(BackendDir)/Imagoverum.FleetManagement.sln # Tests - name: TestsDir value: $(ExtensionTarget)/Solutions/FleetManagement - name: TestProject value: Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj stages: - stage: Build displayName: 'Build ${{ parameters.RepoName }}' jobs: - job: Build_Backend displayName: 'Build, Test, Package' pool: name: M42BPM demands: - DotNetFramework - vstest steps: - task: CopyFiles@2 displayName: 'Copy extension $(ExtensionTarget) source files' inputs: SourceFolder: '${{ parameters.BaseDir }}' Contents: '**' TargetFolder: '$(ExtensionTarget)' - task: CopyFiles@2 displayName: 'Copy suite.rar' inputs: SourceFolder: '${{ parameters.SuiteRarShare }}' Contents: 'suite.rar' TargetFolder: '${{ parameters.BaseDir }}' OverWrite: true - task: ExtractFiles@1 displayName: 'Extract suite.rar' inputs: archiveFilePatterns: '${{ parameters.BaseDir }}/suite.rar' destinationFolder: '${{ parameters.BaseDir }}' cleanDestinationFolder: false overwriteExistingFiles: true - task: DotNetCoreCLI@2 displayName: 'Restore $(ExtensionTarget) solution' inputs: command: 'restore' projects: '$(SolutionPath)' # Optional: override default RIDs globally if needed: -p:M42DefaultRids=win-x64;linux-x64 - task: DotNetCoreCLI@2 displayName: 'Build FleetManagement solution' inputs: command: 'build' projects: '$(SolutionPath)' arguments: > -c Release --no-restore -p:SolutionDir=$(BackendDir)\ - task: DotNetCoreCLI@2 displayName: 'Test (net8.0)' inputs: command: 'test' projects: '$(TestsDir)/$(TestProject)' arguments: '-c Release -f net8.0 --no-build' - task: ArchiveFiles@2 displayName: 'Zip $(ExtensionTarget) BasePackage' inputs: rootFolderOrFile: '$(ExtensionTarget)/BasePackage' includeRootFolder: false archiveType: 'zip' sevenZipCompression: 'normal' archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.RepoName }}_1.0.zip' replaceExistingArchive: true - task: PublishPipelineArtifact@1 displayName: 'Publish ${{ parameters.RepoName }}_1.0.zip' inputs: targetPath: '$(Build.ArtifactStagingDirectory)/${{ parameters.RepoName }}_1.0.zip' artifact: '${{ parameters.RepoName }}'