chore: add Imagoverum fleet management package
This commit is contained in:
49
ImagoverumFleetManagement/AzurePipelines/build.yaml
Normal file
49
ImagoverumFleetManagement/AzurePipelines/build.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
#name: $(BuildDefinitionName)_$(date:yyyyMMdd)$(rev:.r)
|
||||
pr: none
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- dev_initialrequest
|
||||
paths:
|
||||
include:
|
||||
- 'backend/**'
|
||||
|
||||
variables:
|
||||
- name: BaseDir
|
||||
value: $(build.sourcesDirectory)
|
||||
- name: BackendDir
|
||||
value: '$(build.sourcesDirectory)\ImagoverumFleetManagement\backend\FleetManagement'
|
||||
|
||||
stages:
|
||||
- stage: BuildBackend
|
||||
jobs:
|
||||
- job: BuildAndCreateArtifact
|
||||
displayName: 'Build and Create Artifact'
|
||||
pool:
|
||||
name: M42BPM
|
||||
demands:
|
||||
- DotNetFramework
|
||||
- vstest
|
||||
steps:
|
||||
- template: ../AzurePipelines/templates/build-backend.yml
|
||||
parameters:
|
||||
BaseDir: '$(BaseDir)'
|
||||
SuiteRarShare: '\\m42-sto-ffm01.matrix42.de\ServiceStore\Builds\TitanLinux Continuous'
|
||||
TestsDir: '$(BackendDir)\Tests'
|
||||
TestDllPaths: ['Imagoverum.FleetManagement.Tests\bin\Debug\Imagoverum.FleetManagement.Tests.dll']
|
||||
- task: ArchiveFiles@2
|
||||
displayName: 'Zip ImagoverumFleetManagement Package'
|
||||
inputs:
|
||||
rootFolderOrFile: '$(Build.SourcesDirectory)/ImagoverumFleetManagement/BasePackage'
|
||||
includeRootFolder: false
|
||||
archiveType: 'zip'
|
||||
sevenZipCompression: 'normal'
|
||||
archiveFile: '$(Build.ArtifactStagingDirectory)/Imagoverum_FleetManagement_1.0.zip'
|
||||
replaceExistingArchive: true
|
||||
- task: PublishPipelineArtifact@1
|
||||
displayName: 'Imagoverum_FleetManagement_1.0.zip'
|
||||
inputs:
|
||||
targetPath: '$(Build.ArtifactStagingDirectory)/Imagoverum_FleetManagement_1.0.zip'
|
||||
artifact: 'Imagoverum_FleetManagement'
|
||||
126
ImagoverumFleetManagement/AzurePipelines/release.yml
Normal file
126
ImagoverumFleetManagement/AzurePipelines/release.yml
Normal file
@@ -0,0 +1,126 @@
|
||||
#name: $(BuildDefinitionName)_$(date:yyyyMMdd)$(rev:.r)
|
||||
pr: none
|
||||
trigger:
|
||||
paths:
|
||||
include:
|
||||
- 'BasePackage/**'
|
||||
|
||||
parameters:
|
||||
- name: extension_package_json_versioning
|
||||
displayName: 'Increment extension major/minor version in package.json'
|
||||
type: boolean
|
||||
default: false
|
||||
- name: extension_build_versioning
|
||||
displayName: 'Increment extension build version in package.json'
|
||||
type: boolean
|
||||
default: false
|
||||
- name: extension_publish
|
||||
displayName: 'Publish Extension?'
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: cicd
|
||||
type: git
|
||||
name: 'DWP/Continuous Integration and Delivery'
|
||||
- repository: perf
|
||||
type: git
|
||||
name: 'DWP/M42ExtensionPerformanceAnalyser'
|
||||
|
||||
stages:
|
||||
- stage: InternalRelease
|
||||
displayName: Generate Package
|
||||
variables:
|
||||
- template: AzurePipelines/shared/variables/esx-vars.yml@cicd
|
||||
- template: AzurePipelines/shared/variables/esm-deploy-vars.yml@cicd
|
||||
- template: AzurePipelines/shared/variables/extensions-vars.yml@cicd
|
||||
jobs:
|
||||
- job: PreparePackage
|
||||
displayName: Prepare Package
|
||||
pool:
|
||||
name: M42BPM
|
||||
demands:
|
||||
- DotNetFramework
|
||||
- vstest
|
||||
- NPM
|
||||
steps:
|
||||
- template: templates/generate-package.yml
|
||||
parameters:
|
||||
PackagePath: '$(System.DefaultWorkingDirectory)/BasePackage'
|
||||
PackageAdditions: '$(BaseDir)/ConfigPackage'
|
||||
PackageIncrementStrategy: 'parameter-based'
|
||||
PackageBuildNumber: '$(Build.BuildId)'
|
||||
PackagePipelineArtifacts:
|
||||
- artifactName: Backend
|
||||
pipelineProject: DWP
|
||||
pipelineId: 1864
|
||||
pipelineBranchName: '$(Build.SourceBranch)'
|
||||
downloadPath: '$(Pipeline.Workspace)'
|
||||
targetPath: '$(BaseDir)/ConfigPackage/Assemblies/svc/bin'
|
||||
|
||||
- job: UpdatePackageVersion
|
||||
condition: and(succeeded(), ne(coalesce(dependencies.PreparePackage.outputs['PassVersion.PassPackageVersion'], ''), ''))
|
||||
variables:
|
||||
- name: PackageVersion
|
||||
value: $[ dependencies.PreparePackage.outputs['PassVersion.PassPackageVersion'] ]
|
||||
pool:
|
||||
name: M42BPM
|
||||
demands:
|
||||
- npm
|
||||
- DotNetFramework
|
||||
- vstest
|
||||
steps:
|
||||
- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
|
||||
- checkout: perf
|
||||
persistCredentials: true
|
||||
clean: true
|
||||
- template: templates/update-package-version.yml
|
||||
parameters:
|
||||
GitBranchName: $(Build.SourceBranchName)
|
||||
PackageVersion: $(PackageVersion)
|
||||
|
||||
- stage: PublicRelease
|
||||
dependsOn: InternalRelease
|
||||
displayName: 'Public Release'
|
||||
condition: and(succeeded(), eq(variables['build.sourceBranchName'], 'main'))
|
||||
variables:
|
||||
- template: AzurePipelines/shared/variables/extensions-vars.yml@cicd
|
||||
- name: PackageVersion
|
||||
value: $[stageDependencies.InternalRelease.PreparePackage.outputs['PassVersion.PassPackageVersion'] ]
|
||||
jobs:
|
||||
- deployment: UploadPackage
|
||||
displayName: 'Publish Package on Gellary'
|
||||
environment: extension-performance-analyzer-env
|
||||
pool:
|
||||
name: M42BPM
|
||||
demands:
|
||||
- DotNetFramework
|
||||
- NPM
|
||||
- msbuild
|
||||
strategy:
|
||||
runOnce:
|
||||
deploy:
|
||||
steps:
|
||||
- checkout: self
|
||||
- task: DownloadPipelineArtifact@2
|
||||
displayName: Download Package as Artifact
|
||||
inputs:
|
||||
artifactName: Package
|
||||
targetPath: '$(Pipeline.Workspace)'
|
||||
- task: Matrix42ExtensionsUploadReleaseTask@1
|
||||
displayName: 'Uploading Extension Release: f43b7586-0eae-40bb-9a66-0ea8baa9d5b6'
|
||||
inputs:
|
||||
acspat: 'M42 Extensions - Publish as Matrix42 (Vendor) - DWP'
|
||||
extensionid: 'f43b7586-0eae-40bb-9a66-0ea8baa9d5b6'
|
||||
extensionlocation: '$(Pipeline.Workspace)\Package\package-$(PackageVersion).zip'
|
||||
- ${{ if eq(parameters.extension_publish, true) }}:
|
||||
- task: Matrix42ExtensionsPublishReleaseTask@1
|
||||
displayName: 'Publishing Extension'
|
||||
inputs:
|
||||
acspat: 'M42 Extensions - Publish as Matrix42 (Vendor) - DWP'
|
||||
extensionid: 'f43b7586-0eae-40bb-9a66-0ea8baa9d5b6'
|
||||
extensionmanifestlocation: 'BasePackage/package.json'
|
||||
extensiontag: stable
|
||||
extensionvisibility: contributors
|
||||
extensioncommunity: true
|
||||
@@ -0,0 +1,60 @@
|
||||
parameters:
|
||||
- name: 'BaseDir'
|
||||
type: string
|
||||
- name: 'SuiteRarShare'
|
||||
type: string
|
||||
- name: 'TestsDir'
|
||||
type: string
|
||||
- name: 'TestDllPaths'
|
||||
type: object
|
||||
|
||||
steps:
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
SourceFolder: '${{ parameters.BaseDir }}'
|
||||
Contents: '**'
|
||||
TargetFolder: '${{ parameters.BaseDir }}/ImagoverumFleetManagement'
|
||||
displayName: Copy extension source files
|
||||
- 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: suite.rar
|
||||
destinationFolder: '"${{ parameters.BaseDir }}\"'
|
||||
cleanDestinationFolder: false
|
||||
overwriteExistingFiles: true
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Restore (net8.0)'
|
||||
inputs:
|
||||
command: 'restore'
|
||||
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.sln'
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Build (net8.0)'
|
||||
inputs:
|
||||
command: 'build'
|
||||
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.sln'
|
||||
arguments: '-c Release --no-restore'
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Build Services (win-x64)'
|
||||
inputs:
|
||||
command: 'build'
|
||||
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj'
|
||||
arguments: '-c Release -r win-x64 -p:SolutionDir=$(Build.SourcesDirectory)\ImagoverumFleetManagement\backend\FleetManagement\ --no-restore'
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Build Services (linux-x64)'
|
||||
inputs:
|
||||
command: 'build'
|
||||
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj'
|
||||
arguments: '-c Release -r linux-x64 -p:SolutionDir=$(Build.SourcesDirectory)\ImagoverumFleetManagement\backend\FleetManagement\ --no-restore'
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Test (net8.0)'
|
||||
inputs:
|
||||
command: 'test'
|
||||
projects: '${{ parameters.TestsDir }}/Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj'
|
||||
arguments: '-c Release -f net8.0 --no-build'
|
||||
@@ -0,0 +1,111 @@
|
||||
parameters:
|
||||
- name: 'PackagePipelineArtifacts'
|
||||
type: object
|
||||
default:
|
||||
- artifactName: 'Backend'
|
||||
pipelineProject: 'DWP'
|
||||
pipelineId: ''
|
||||
pipelineBranchName: '$(Build.SourceBranch)'
|
||||
downloadPath: '$(Pipeline.Workspace)'
|
||||
targetPath: '$(Pipeline.Workspace)'
|
||||
- artifactName: 'Frontend'
|
||||
|
||||
- name: 'PackagePath'
|
||||
type: string
|
||||
default: '$(System.DefaultWorkingDirectory)/BasePackage'
|
||||
- name: 'PackageAdditions'
|
||||
type: string
|
||||
- name: 'PackageIncrementStrategy'
|
||||
type: string
|
||||
default: 'parameter-based'
|
||||
values:
|
||||
- file-based #increment package.json version directly in a file
|
||||
- parameter-based #increment package version based on 'package build number' input parameter
|
||||
- name: 'PackageBuildNumber'
|
||||
type: string
|
||||
default: '$(Build.BuildId)'
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
echo PackagePath: ${{ parameters.PackagePath }}
|
||||
echo PackageIncrementStrategy: ${{ parameters.PackageIncrementStrategy }}
|
||||
echo PackageBuildNumber: ${{ parameters.PackageBuildNumber }}
|
||||
name: InputVariables
|
||||
displayName: Template Available Parameters
|
||||
- ${{ each pipelineArtifact in parameters.PackagePipelineArtifacts }} :
|
||||
- task: DownloadPipelineArtifact@2
|
||||
displayName: Download Frontend Pipeline Artifacts From Build
|
||||
inputs:
|
||||
buildType: 'specific'
|
||||
project: ${{ pipelineArtifact.pipelineProject }}
|
||||
definition: ${{ pipelineArtifact.pipelineId }}
|
||||
preferTriggeringPipeline: true
|
||||
buildVersionToDownload: 'latestFromBranch'
|
||||
branchName: ${{ pipelineArtifact.pipelineBranchName }}
|
||||
targetPath: ${{ pipelineArtifact.downloadPath }}
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Files to: ${{ pipelineArtifact.targetPath }}'
|
||||
inputs:
|
||||
SourceFolder: ${{ pipelineArtifact.downloadPath }}/${{ pipelineArtifact.artifactName }}
|
||||
TargetFolder: ${{ pipelineArtifact.targetPath }}
|
||||
CleanTargetFolder: true
|
||||
Contents: >-
|
||||
Matrix42.DWP.PerformanceAnalyser*.dll
|
||||
- ${{ if eq(parameters.PackageIncrementStrategy, 'file-based') }}:
|
||||
- powershell: |
|
||||
$packageJsonFile = -join($env:EXTENSION_PATH, "/package.json")
|
||||
$packageConfigJson = get-content $packageJsonFile | ConvertFrom-Json
|
||||
[version]$currentPackageVersion=$packageConfigJson.version
|
||||
|
||||
$newPackageBuild = $currentPackageVersion.Build +1
|
||||
$newPackageVersion = ("{0}.{1}.{2}" -f $currentPackageVersion.Major, $currentPackageVersion.Minor, $newPackageBuild).ToString()
|
||||
$packageConfigJson.version = $newPackageVersion;
|
||||
|
||||
$packageConfigJson | ConvertTo-Json -Depth 100 -Compress | set-content $packageJsonFile
|
||||
|
||||
Write-Host 'Package New Version: $newPackageVersion'
|
||||
Write-Host "##vso[task.setvariable variable=PackageVersion]$newPackageVersion"
|
||||
Write-Host "##vso[task.setvariable variable=PackageBuildNumber]$newPackageBuild"
|
||||
name: UpdatePackageVersion
|
||||
displayName: 'Update Package Version (based on package.json)'
|
||||
env:
|
||||
EXTENSION_PATH: '${{ parameters.PackagePath }}'
|
||||
- task: Matrix42ExtensionsGeneratePackageTask@1
|
||||
displayName: 'Generate Package based on package.json version'
|
||||
inputs:
|
||||
extensionManifest: BasePackage/package.json
|
||||
extensionAdditions: '${{ parameters.PackageAdditions }}'
|
||||
extensionOutput: '$(Build.ArtifactStagingDirectory)/package-$(PackageVersion).zip'
|
||||
extensionManifestOutput: '$(Build.ArtifactStagingDirectory)'
|
||||
developerIdentity: 'ivo-ci-key.pfx'
|
||||
developerIdentityPassword: '$(ivo-key-password)'
|
||||
- ${{ if eq(parameters.PackageIncrementStrategy, 'parameter-based') }}:
|
||||
- powershell: |
|
||||
$packageJsonFile = -join($env:EXTENSION_PATH, "/package.json")
|
||||
$packageConfigJson = get-content $packageJsonFile | ConvertFrom-Json
|
||||
|
||||
$newPackageVersion = ("{0}.{1}" -f $packageConfigJson.version, $env:PACKAGE_BUILD_NUMBER).ToString()
|
||||
Write-Host 'Package New Version: $newPackageVersion'
|
||||
Write-Host "##vso[task.setvariable variable=PackageVersion]$newPackageVersion"
|
||||
name: UpdatePackageVersion
|
||||
displayName: 'Update Package Version (based on parameter)'
|
||||
env:
|
||||
EXTENSION_PATH: '${{ parameters.PackagePath }}'
|
||||
PACKAGE_BUILD_NUMBER: '${{ parameters.PackageBuildNumber }}'
|
||||
- task: Matrix42ExtensionsGeneratePackageTask@1
|
||||
displayName: 'Generate Package based on build number version'
|
||||
inputs:
|
||||
extensionManifest: BasePackage/package.json
|
||||
extensionAdditions: '${{ parameters.PackageAdditions }}'
|
||||
extensionBuildNumber: '${{ parameters.PackageBuildNumber }}'
|
||||
extensionOutput: '$(Build.ArtifactStagingDirectory)/package-$(PackageVersion).zip'
|
||||
extensionManifestOutput: '$(Build.ArtifactStagingDirectory)'
|
||||
developerIdentity: 'ivo-ci-key.pfx'
|
||||
developerIdentityPassword: '$(ivo-key-password)'
|
||||
- task: PublishPipelineArtifact@1
|
||||
displayName: Publish Package as Pipeline Artifact - $(PackageVersion)
|
||||
inputs:
|
||||
targetPath: '$(Build.ArtifactStagingDirectory)/package-$(PackageVersion).zip'
|
||||
artifactName: Package
|
||||
- script: echo '##vso[task.setvariable variable=PassPackageVersion;isOutput=true]$(PackageVersion)
|
||||
name: PassVersion
|
||||
@@ -0,0 +1,44 @@
|
||||
parameters:
|
||||
- name: 'SourceDirectory'
|
||||
type: string
|
||||
default: '$(System.DefaultWorkingDirectory)'
|
||||
- name: 'GitBranchName'
|
||||
type: string
|
||||
- name: 'GitUserName'
|
||||
type: string
|
||||
default: 'Pipeline'
|
||||
- name: 'PackagePath'
|
||||
type: string
|
||||
default: 'BasePackage/package.json'
|
||||
- name: 'PackageVersion'
|
||||
type: string
|
||||
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
ECHO Current Branch - ${{ parameters.GitBranchName }}
|
||||
git config --global user.email ${{ parameters.GitUserName }}@matrix42.com & git config --global user.name ${{ parameters.GitUserName }}
|
||||
git fetch origin
|
||||
git checkout ${{ parameters.GitBranchName }}
|
||||
git pull origin ${{ parameters.GitBranchName }} --allow-unrelated-histories
|
||||
displayName: 'Git Pull ${{ parameters.GitBranchName }} branch under ${{ parameters.GitUserName }} user'
|
||||
workingDirectory: ${{ parameters.SourceDirectory }}
|
||||
|
||||
- powershell: |
|
||||
Write-Host "New Package Version: $env:PACKAGE_VERSION"
|
||||
$packageJsonFile = $env:EXTENSION_PATH
|
||||
|
||||
$packageConfigJson = get-content $packageJsonFile | ConvertFrom-Json
|
||||
$packageConfigJson.version = $env:PACKAGE_VERSION
|
||||
$packageConfigJson | ConvertTo-Json -Depth 100 | set-content $packageJsonFile
|
||||
displayName: 'Update package version on git repository'
|
||||
env:
|
||||
EXTENSION_PATH: '${{ parameters.SourceDirectory }}/${{ parameters.PackagePath }}'
|
||||
PACKAGE_VERSION: ${{ parameters.PackageVersion }}
|
||||
|
||||
- script: |
|
||||
git add ${{ parameters.PackagePath }}
|
||||
git commit ${{ parameters.PackagePath }} -m "Build version increment ${{ parameters.PackageVersion }} *CI*"
|
||||
git push --set-upstream --progress "origin" HEAD:${{ parameters.GitBranchName }}
|
||||
displayName: Git Push Update package.json version to ${{ parameters.PackageVersion }}
|
||||
workingDirectory: ${{ parameters.SourceDirectory }}
|
||||
Reference in New Issue
Block a user