Files
C4IT-F4SD-M42WebApi/F4SDM42WebApi/M42ExtensionScaffolder/Solutions/Matrix42.Extensions.Scaffolder.Core/azure-pipelines-ci.yaml
2026-06-26 11:31:03 +02:00

124 lines
3.3 KiB
YAML

# azure-pipelines.yml
pr: none
trigger:
branches:
include:
- release_26_1_0
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: '{repoName}'
- name: SolutionName
type: string
default: '{ns}'
variables:
- name: BaseDir
value: ${{ parameters.BaseDir }}
- name: ExtensionTarget
value: ${{ parameters.BaseDir }}/${{ parameters.RepoName }}
- name: SolutionDir
value: $(ExtensionTarget)/Solutions/{ns}
- name: SolutionPath
value: $(SolutionDir)/{ns}.sln
# Tests
- name: TestsDir
value: $(SolutionDir)
- name: TestProject
value: '{ns}.Tests/{ns}.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 {ns} solution'
inputs:
command: 'build'
projects: '$(SolutionPath)'
arguments: >
-c Release
--no-restore
-p:SolutionDir=$(SolutionDir)\
-p:M42BuildAllRidsOnCI=true
- 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 }}'