From 334536577889ff5ae2d61e2409a94115e05ee85c Mon Sep 17 00:00:00 2001 From: Meik Date: Fri, 26 Jun 2026 16:46:44 +0200 Subject: [PATCH] chore: add Imagoverum fleet management package --- ImagoverumFleetManagement/.gitignore | 17 ++ .../AzurePipelines/build.yaml | 49 +++++ .../AzurePipelines/release.yml | 126 +++++++++++ .../templates/build-backend.yml | 60 ++++++ .../templates/generate-package.yml | 111 ++++++++++ .../templates/update-package-version.yml | 44 ++++ .../BasePackage/install.xml | 27 +++ ...aseIMGVCarClass_CarsDriver_create.relation | 24 +++ .../02-01-0010 IMGVCarClass_create.class | 76 +++++++ .../02-01-0020 IMGVCarType_create.type | 43 ++++ .../install/02-01-0030 PDRDataQueryType.dat | 81 +++++++ ...entWidgetTemplateType_Car Dataset View.dat | 9 + ...ContentWidgetTypeList_Car Dataset View.dat | 46 ++++ ...RContentWidgetTemplateType_Car Preview.dat | 11 + ...tentWidgetTemplateViewType_Car Preview.dat | 26 +++ ...entWidgetTypeObjectDetails_Car Preview.dat | 38 ++++ ...DRContentWidgetTemplateType_Car Dialog.dat | 11 + ...ntentWidgetTemplateViewType_Car Dialog.dat | 26 +++ ... PDRContentWidgetTypeDialog_Car Dialog.dat | 38 ++++ .../02-01-0070 PDRNavigationItemType.dat | 39 ++++ ...2-01-0080 IMGVCarType_behavior_create.type | 13 ++ .../02-01-0090 PLSLServiceTypeWebAPI.dat | 22 ++ ...02-01-0100 PLSLWebServiceOperationType.dat | 25 +++ ...02-01-0110 PLSLWebServiceOperationType.dat | 25 +++ ...02-01-0120 PLSLWebServiceOperationType.dat | 25 +++ ...getTemplateType_Car Geolocation Wizard.dat | 20 ++ ...emplateViewType_Car Geolocation Wizard.dat | 26 +++ ...idgetTypeWizard_Car Geolocation Wizard.dat | 21 ++ .../install/02-01-0140 PDRActionType.dat | 36 ++++ .../BasePackage/package.json | 14 ++ .../BasePackage/uninstall.xml | 15 ++ ... PLSLWebServiceOperationType_uninstall.del | 9 + ...483577 PDRNavigationItemType_uninstall.del | 9 + ... PLSLWebServiceOperationType_uninstall.del | 9 + ... PLSLWebServiceOperationType_uninstall.del | 9 + ...-2147483617 PDRDataQueryType_uninstall.del | 9 + ...-01-2147483627 PDRActionType_uninstall.del | 9 + ...483627 PLSLServiceTypeWebAPI_uninstall.del | 9 + ...izard_Car Geolocation Wizard_uninstall.del | 17 ++ ...7483647 UnregisterInstallScripts_Sobu.post | 21 ++ .../BasePackage/uninstall_data.xml | 6 + ...47483627 IMGVCarType_create_uninstall.type | 8 + ...483637 IMGVCarClass_create_uninstall.class | 8 + ...IMGVCarType_behavior_create_uninstall.type | 13 ++ ...7483647 UnregisterInstallScripts_Data.post | 5 + .../Extension.Assemblies.targets | 201 ++++++++++++++++++ ImagoverumFleetManagement/README.md | 22 ++ .../Solutions/FleetManagement/BuildEvent.cmd | 1 + .../CarBehavior.cs | 49 +++++ .../CarTester.cs | 16 ++ ...Imagoverum.FleetManagement.BizLogic.csproj | 31 +++ ...rum.FleetManagement.BizLogic.csproj.vspscc | 10 + .../PostBuild.cmd | 3 + .../CarController.cs | 78 +++++++ ...Imagoverum.FleetManagement.Services.csproj | 45 ++++ ...m.FleetManagement.Services.dll.host.config | 8 + .../PostBuild.cmd | 3 + .../Properties/launchSettings.json | 12 ++ .../Imagoverum.FleetManagement.sln | 50 +++++ .../Imagoverum.FleetManagement.Tests.csproj | 19 ++ .../MSTestSettings.cs | 1 + .../Imagoverum.FleetManagement.Tests/Test1.cs | 11 + ImagoverumFleetManagement/TeamBuildEvent.cmd | 104 +++++++++ .../azure-pipelines-ci.yaml | 120 +++++++++++ ImagoverumFleetManagement/robocopy.exe | Bin 0 -> 79872 bytes ImagoverumFleetManagement/service-info.yml | 17 ++ 66 files changed, 2086 insertions(+) create mode 100644 ImagoverumFleetManagement/.gitignore create mode 100644 ImagoverumFleetManagement/AzurePipelines/build.yaml create mode 100644 ImagoverumFleetManagement/AzurePipelines/release.yml create mode 100644 ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml create mode 100644 ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml create mode 100644 ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml create mode 100644 ImagoverumFleetManagement/BasePackage/install.xml create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0010 FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create.relation create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0010 IMGVCarClass_create.class create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0020 IMGVCarType_create.type create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0030 PDRDataQueryType.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTemplateType_Car Dataset View.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTypeList_Car Dataset View.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateType_Car Preview.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateViewType_Car Preview.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTypeObjectDetails_Car Preview.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateType_Car Dialog.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateViewType_Car Dialog.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTypeDialog_Car Dialog.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0070 PDRNavigationItemType.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0080 IMGVCarType_behavior_create.type create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0090 PLSLServiceTypeWebAPI.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0100 PLSLWebServiceOperationType.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0110 PLSLWebServiceOperationType.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0120 PLSLWebServiceOperationType.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateType_Car Geolocation Wizard.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateViewType_Car Geolocation Wizard.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTypeWizard_Car Geolocation Wizard.dat create mode 100644 ImagoverumFleetManagement/BasePackage/install/02-01-0140 PDRActionType.dat create mode 100644 ImagoverumFleetManagement/BasePackage/package.json create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall.xml create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483567 PLSLWebServiceOperationType_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483577 PDRNavigationItemType_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483587 PLSLWebServiceOperationType_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483607 PLSLWebServiceOperationType_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483617 PDRDataQueryType_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PDRActionType_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PLSLServiceTypeWebAPI_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483637 PDRContentWidgetTypeWizard_Car Geolocation Wizard_uninstall.del create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall_data.xml create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483627 IMGVCarType_create_uninstall.type create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483637 IMGVCarClass_create_uninstall.class create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483646 IMGVCarType_behavior_create_uninstall.type create mode 100644 ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483647 UnregisterInstallScripts_Data.post create mode 100644 ImagoverumFleetManagement/Extension.Assemblies.targets create mode 100644 ImagoverumFleetManagement/README.md create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/BuildEvent.cmd create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarBehavior.cs create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarTester.cs create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj.vspscc create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/PostBuild.cmd create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/CarController.cs create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.dll.host.config create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/PostBuild.cmd create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Properties/launchSettings.json create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.sln create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/MSTestSettings.cs create mode 100644 ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Test1.cs create mode 100644 ImagoverumFleetManagement/TeamBuildEvent.cmd create mode 100644 ImagoverumFleetManagement/azure-pipelines-ci.yaml create mode 100644 ImagoverumFleetManagement/robocopy.exe create mode 100644 ImagoverumFleetManagement/service-info.yml diff --git a/ImagoverumFleetManagement/.gitignore b/ImagoverumFleetManagement/.gitignore new file mode 100644 index 0000000..0f6cc52 --- /dev/null +++ b/ImagoverumFleetManagement/.gitignore @@ -0,0 +1,17 @@ +Root/ +.idea/ +/**/bin +/**/obj +*.suo +**/.vs +/**/AssemblyInfoProduct.cs +/**/_Resharper.Caches +/backend/*.sln.DotSettings.user +/backend/**/Matrix42.*.csproj.user +/backend/**/packages/*.* +/backend/**/**/AssemblyInfoProduct.cs +/backend/TestResult/*.* + +BasePackage/Assemblies/ + +node_modules/ \ No newline at end of file diff --git a/ImagoverumFleetManagement/AzurePipelines/build.yaml b/ImagoverumFleetManagement/AzurePipelines/build.yaml new file mode 100644 index 0000000..55b9969 --- /dev/null +++ b/ImagoverumFleetManagement/AzurePipelines/build.yaml @@ -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' \ No newline at end of file diff --git a/ImagoverumFleetManagement/AzurePipelines/release.yml b/ImagoverumFleetManagement/AzurePipelines/release.yml new file mode 100644 index 0000000..d5d1246 --- /dev/null +++ b/ImagoverumFleetManagement/AzurePipelines/release.yml @@ -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 \ No newline at end of file diff --git a/ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml b/ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml new file mode 100644 index 0000000..fa75797 --- /dev/null +++ b/ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml @@ -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' diff --git a/ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml b/ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml new file mode 100644 index 0000000..58fcce9 --- /dev/null +++ b/ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml @@ -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 \ No newline at end of file diff --git a/ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml b/ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml new file mode 100644 index 0000000..b22fd07 --- /dev/null +++ b/ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml @@ -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 }} \ No newline at end of file diff --git a/ImagoverumFleetManagement/BasePackage/install.xml b/ImagoverumFleetManagement/BasePackage/install.xml new file mode 100644 index 0000000..141ca1d --- /dev/null +++ b/ImagoverumFleetManagement/BasePackage/install.xml @@ -0,0 +1,27 @@ + + +