azure pipeline
This commit is contained in:
		
							parent
							
								
									d945ef9527
								
							
						
					
					
						commit
						0a5a2b3674
					
				| @ -12,64 +12,138 @@ variables: | |||||||
|   buildConfiguration: 'Release' |   buildConfiguration: 'Release' | ||||||
| 
 | 
 | ||||||
| pool: | pool: | ||||||
|   vmImage: 'ubuntu-latest' # This default pool will be used for Linux builds |   vmImage: 'ubuntu-latest' | ||||||
| 
 | 
 | ||||||
| stages: | stages: | ||||||
| - stage: Build | - stage: Build | ||||||
|   jobs: |   jobs: | ||||||
|   - job: LinuxBuild | 
 | ||||||
|     displayName: 'Build on Linux' |   - job: SetupEnvironment | ||||||
|     pool: |     displayName: "Setup Build Environment" | ||||||
|       vmImage: 'ubuntu-latest'  |  | ||||||
|     steps: |     steps: | ||||||
| 
 | 
 | ||||||
|       - task: UseDotNet@2 |     - task: PowerShell@2 | ||||||
|         inputs: |       name: "diffStep" | ||||||
|           packageType: 'sdk' |       inputs: | ||||||
|           version: '9.0.x' |         targetType: 'inline' | ||||||
|  |         script: | | ||||||
|  |           $diffResult = git diff --name-only HEAD~1 HEAD | ||||||
|  |           $folderFound = $false | ||||||
|  |           if ([string]::IsNullOrWhiteSpace($diffResult)) { | ||||||
|  |               Write-Host "No diff results found." | ||||||
|  |               Write-Host "##vso[task.setvariable variable=folderChanged;isOutput=true]$folderFound" | ||||||
|  |               exit 0  # Exit with success code | ||||||
|  |           } | ||||||
| 
 | 
 | ||||||
|       - task: NodeTool@0 |           $diffResultEncoded = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($diffResult)) | ||||||
|         inputs: |           Write-Host "##vso[task.setvariable variable=diffResultEncoded]$diffResultEncoded" | ||||||
|           versionSource: 'spec' | 
 | ||||||
|           versionSpec: '20.x' |           $foldersToCheck = @('EnotaryoPH/EnotaryoPH.DbMigration/Scripts') | ||||||
|  |           foreach ($folder in $foldersToCheck) { | ||||||
|  |               if ($diffResult -match $folder) { | ||||||
|  |                   $folderFound = $true | ||||||
|  |                   Write-Host "Found changes in $folder" | ||||||
|  |                   break | ||||||
|  |               } | ||||||
|  |           } | ||||||
|  |           Write-Host "##vso[task.setvariable variable=folderChanged;isOutput=true]$folderFound" | ||||||
|  |       displayName: 'Check Git Diff for Specific Folders' | ||||||
|  | 
 | ||||||
|  |     - task: UseDotNet@2 | ||||||
|  |       inputs: | ||||||
|  |         packageType: 'sdk' | ||||||
|  |         version: '9.0.x' | ||||||
|  | 
 | ||||||
|  |     - task: NodeTool@0 | ||||||
|  |       inputs: | ||||||
|  |         versionSource: 'spec' | ||||||
|  |         versionSpec: '20.x' | ||||||
|  | 
 | ||||||
|  |   - job: LinuxBuild | ||||||
|  |     displayName: 'Build on Linux' | ||||||
|  |     dependsOn: SetupEnvironment | ||||||
|  |     variables: | ||||||
|  |       folderChanged: $[ dependencies.SetupEnvironment.outputs['diffStep.folderChanged'] ] | ||||||
|  |     pool: | ||||||
|  |       vmImage: 'ubuntu-latest' | ||||||
|  |     steps: | ||||||
| 
 | 
 | ||||||
|       - task: PowerShell@2 |       - task: PowerShell@2 | ||||||
|         inputs: |         inputs: | ||||||
|           filePath: 'make.ps1' |           filePath: 'make.ps1' | ||||||
|           arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-linux' |           arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-linux' | ||||||
| 
 | 
 | ||||||
|  |       - task: ArchiveFiles@2 | ||||||
|  |         inputs: | ||||||
|  |           rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-linux/web' | ||||||
|  |           includeRootFolder: true | ||||||
|  |           archiveType: 'zip' | ||||||
|  |           archiveFile: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/web.zip' | ||||||
|  |           replaceExistingArchive: true | ||||||
|  | 
 | ||||||
|       - task: PublishBuildArtifacts@1 |       - task: PublishBuildArtifacts@1 | ||||||
|         inputs: |         inputs: | ||||||
|           PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux' |           PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/web.zip' | ||||||
|           ArtifactName: 'drop-linux' |           ArtifactName: 'drop-linux-web' | ||||||
|           publishLocation: 'Container' |           publishLocation: 'Container' | ||||||
| 
 | 
 | ||||||
|  |       - task: ArchiveFiles@2 | ||||||
|  |         condition: eq(variables['folderChanged'], 'True') | ||||||
|  |         inputs: | ||||||
|  |           rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-linux/migration' | ||||||
|  |           includeRootFolder: true | ||||||
|  |           archiveType: 'zip' | ||||||
|  |           archiveFile: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/migration.zip' | ||||||
|  |           replaceExistingArchive: true | ||||||
|  | 
 | ||||||
|  |       - task: PublishBuildArtifacts@1 | ||||||
|  |         condition: eq(variables['folderChanged'], 'True') | ||||||
|  |         inputs: | ||||||
|  |           PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId)/migration.zip' | ||||||
|  |           ArtifactName: 'drop-linux-migration' | ||||||
|  |           publishLocation: 'Container' | ||||||
| 
 | 
 | ||||||
|   - job: WindowsBuild |   - job: WindowsBuild | ||||||
|     displayName: 'Build on Windows' |     displayName: 'Build on Windows' | ||||||
|  |     dependsOn: SetupEnvironment | ||||||
|  |     variables: | ||||||
|  |       folderChanged: $[ dependencies.SetupEnvironment.outputs['diffStep.folderChanged'] ] | ||||||
|     pool: |     pool: | ||||||
|       vmImage: 'windows-latest' # Specify the Windows agent |       vmImage: 'windows-latest' # Specify the Windows agent | ||||||
|     steps: |     steps: | ||||||
| 
 | 
 | ||||||
|       - task: UseDotNet@2 |  | ||||||
|         inputs: |  | ||||||
|           packageType: 'sdk' |  | ||||||
|           version: '9.0.x' |  | ||||||
|            |  | ||||||
|       - task: NodeTool@0 |  | ||||||
|         inputs: |  | ||||||
|           versionSource: 'spec' |  | ||||||
|           versionSpec: '20.x' |  | ||||||
| 
 |  | ||||||
|       - task: PowerShell@2 |       - task: PowerShell@2 | ||||||
|         inputs: |         inputs: | ||||||
|           filePath: 'make.ps1' |           filePath: 'make.ps1' | ||||||
|           arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-windows' |           arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-windows' | ||||||
| 
 | 
 | ||||||
|  |       - task: ArchiveFiles@2 | ||||||
|  |         inputs: | ||||||
|  |           rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-windows/web' | ||||||
|  |           includeRootFolder: true | ||||||
|  |           archiveType: 'zip' | ||||||
|  |           archiveFile: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip' | ||||||
|  |           replaceExistingArchive: true | ||||||
|       - task: PublishBuildArtifacts@1 |       - task: PublishBuildArtifacts@1 | ||||||
|         inputs: |         inputs: | ||||||
|           PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows' |           PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip' | ||||||
|           ArtifactName: 'drop-windows' |           ArtifactName: 'drop-windows-web' | ||||||
|  |           publishLocation: 'Container' | ||||||
|  | 
 | ||||||
|  |       - task: ArchiveFiles@2 | ||||||
|  |         condition: eq(variables['folderChanged'], 'True') | ||||||
|  |         inputs: | ||||||
|  |           rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-windows/migration' | ||||||
|  |           includeRootFolder: true | ||||||
|  |           archiveType: 'zip' | ||||||
|  |           archiveFile: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/migration.zip' | ||||||
|  |           replaceExistingArchive: true | ||||||
|  | 
 | ||||||
|  |       - task: PublishBuildArtifacts@1 | ||||||
|  |         condition: eq(variables['folderChanged'], 'True') | ||||||
|  |         inputs: | ||||||
|  |           PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/migration.zip' | ||||||
|  |           ArtifactName: 'drop-windows-migration' | ||||||
|           publishLocation: 'Container' |           publishLocation: 'Container' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user