name: $(TeamProject)_$(BuildDefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
variables:
- name: varPowerPlatformSPN
value: Dataverse - Build - AzureDevOps
- name: varPowerPlatformSPN2
value: Dataverse - TracsIntegration-Build - AzureDevOps
- name: varSolutionName
value: TRACSCustomConnectors
- name: varSolutionName2
value: Entities
- name: varSolutionName3
value: Environment_Configuration
- name: varSolutionName4
value: Core
- name: varSolutionName5
value: Dataflows
- name: varSolutionName6
value: TRACS_Integration_Solution
- name: varSolutionName7
value: Document_Migration
- name: varWebsiteId
value: ca958ff8-3c4b-ee11-be6f-0022481ab062
## revert schedule to 0 once old build backup is retired
schedules:
- cron: 30 13,18 * * 1-5
displayName: Weekday Backup
branches:
include:
- main
always: true
trigger: none
pool:
vmImage: 'windows-latest'
steps:
- checkout: self
persistCredentials: true
clean: true
- task: PowerPlatformToolInstaller@2
inputs:
DefaultVersion: true
AddToolsToPath: true
## SOLUTION 1 - CUSTOM CONNECTORS
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\solutions\$(varSolutionName)'
SolutionType: 'Both'
## SOLUTION 2 - ENTITIES
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName2)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName2)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName2)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName2)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName2).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName2).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\solutions\$(varSolutionName2)'
SolutionType: 'Both'
## SOLUTION 3 - ENVIRONMENT CONFIGURATION
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName3)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName3)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName3)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName3)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName3).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName3).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\solutions\$(varSolutionName3)'
SolutionType: 'Both'
## SOLUTION 4 - CORE
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName4)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName4)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName4)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName4)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName4).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName4).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\solutions\$(varSolutionName4)'
SolutionType: 'Both'
## SOLUTION 5 - DATAFLOWS
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName5)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName5)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName5)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName5)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName5).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName5).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\solutions\$(varSolutionName5)'
SolutionType: 'Both'
## SOLUTION 6 - TRACS INTEGRATION
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN2)'
SolutionName: '$(varSolutionName6)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN2)'
SolutionName: '$(varSolutionName6)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName6)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN2)'
SolutionName: '$(varSolutionName6)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName6).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName6).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\tracsIntegrationSolutions\$(varSolutionName6)'
SolutionType: 'Both'
# SOLUTION 7 - DOCUMENT MIGRATION
- task: PowerPlatformSetSolutionVersion@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName7)'
SolutionVersionNumber: '2.4.0.$(Build.BuildID)'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName7)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName7)_managed.zip'
Managed: true
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformExportSolution@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
SolutionName: '$(varSolutionName7)'
SolutionOutputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName7).zip'
Managed: false
AsyncOperation: true
MaxAsyncWaitTime: '60'
- task: PowerPlatformUnpackSolution@2
inputs:
SolutionInputFile: '$(Build.ArtifactStagingDirectory)\$(varSolutionName7).zip'
SolutionTargetFolder: '$(Build.SourcesDirectory)\src\solutions\$(varSolutionName7)'
SolutionType: 'Both'
## PORTAL
- task: PowerPlatformDownloadPaportal@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
DownloadPath: '$(Build.SourcesDirectory)\src\ppages'
WebsiteId: '$(varWebsiteId)'
Overwrite: true
ModelVersion: 2
## REFERENCE DATA
- task: PowerPlatformExportData@2
inputs:
authenticationType: 'PowerPlatformSPN'
PowerPlatformSPN: '$(varPowerPlatformSPN)'
Environment: '$(BuildTools.EnvironmentUrl)'
SchemaFile: '$(Build.SourcesDirectory)\referenceData\data_schema.xml'
DataFile: '$(Build.ArtifactStagingDirectory)\$rferenceData.zip'
Overwrite: true
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)\$rferenceData.zip'
destinationFolder: '$(Build.SourcesDirectory)\referenceData'
cleanDestinationFolder: true
overwriteExistingFiles: true
- task: CmdLine@2
inputs:
script: |
echo commit all changes
git config user.email "$(Build.RequestedForEmail)"
git config user.name "$(Build.RequestedFor)"
git checkout -b main
git add --all
git commit -m "Latest solution changes."
echo push code to new repo
git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push origin main