121 lines
3.3 KiB
YAML
121 lines
3.3 KiB
YAML
# 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 }}'
|