azure pipeline
This commit is contained in:
parent
153a3d275d
commit
b1626b4a6d
@ -12,17 +12,43 @@ 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: 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
|
- task: UseDotNet@2
|
||||||
inputs:
|
inputs:
|
||||||
packageType: 'sdk'
|
packageType: 'sdk'
|
||||||
@ -33,43 +59,91 @@ stages:
|
|||||||
versionSource: 'spec'
|
versionSource: 'spec'
|
||||||
versionSpec: '20.x'
|
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