azure pipeline
This commit is contained in:
		
							parent
							
								
									153a3d275d
								
							
						
					
					
						commit
						b1626b4a6d
					
				| @ -12,17 +12,43 @@ variables: | ||||
|   buildConfiguration: 'Release' | ||||
| 
 | ||||
| pool: | ||||
|   vmImage: 'ubuntu-latest' # This default pool will be used for Linux builds | ||||
|   vmImage: 'ubuntu-latest' | ||||
| 
 | ||||
| stages: | ||||
| - stage: Build | ||||
|   jobs: | ||||
|   - job: LinuxBuild | ||||
|     displayName: 'Build on Linux' | ||||
|     pool: | ||||
|       vmImage: 'ubuntu-latest'  | ||||
| 
 | ||||
|   - job: SetupEnvironment | ||||
|     displayName: "Setup Build Environment" | ||||
|     steps: | ||||
| 
 | ||||
|     - task: PowerShell@2 | ||||
|       name: "diffStep" | ||||
|       inputs: | ||||
|         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 | ||||
|           } | ||||
| 
 | ||||
|           $diffResultEncoded = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($diffResult)) | ||||
|           Write-Host "##vso[task.setvariable variable=diffResultEncoded]$diffResultEncoded" | ||||
| 
 | ||||
|           $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' | ||||
| @ -33,43 +59,91 @@ stages: | ||||
|         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 | ||||
|         inputs: | ||||
|           filePath: 'make.ps1' | ||||
|           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 | ||||
|         inputs: | ||||
|           PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux' | ||||
|           ArtifactName: 'drop-linux' | ||||
|           PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/web.zip' | ||||
|           ArtifactName: 'drop-linux-web' | ||||
|           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 | ||||
|     displayName: 'Build on Windows' | ||||
|     dependsOn: SetupEnvironment | ||||
|     variables: | ||||
|       folderChanged: $[ dependencies.SetupEnvironment.outputs['diffStep.folderChanged'] ] | ||||
|     pool: | ||||
|       vmImage: 'windows-latest' # Specify the Windows agent | ||||
|     steps: | ||||
| 
 | ||||
|       - task: UseDotNet@2 | ||||
|         inputs: | ||||
|           packageType: 'sdk' | ||||
|           version: '9.0.x' | ||||
|            | ||||
|       - task: NodeTool@0 | ||||
|         inputs: | ||||
|           versionSource: 'spec' | ||||
|           versionSpec: '20.x' | ||||
| 
 | ||||
|       - task: PowerShell@2 | ||||
|         inputs: | ||||
|           filePath: 'make.ps1' | ||||
|           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 | ||||
|         inputs: | ||||
|           PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows' | ||||
|           ArtifactName: 'drop-windows' | ||||
|           PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip' | ||||
|           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' | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user