Merged PR 20: Update azure-pipelines.yml for Azure Pipelines

Update azure-pipelines.yml for Azure Pipelines
This commit is contained in:
Jojo Aquino 2025-04-21 13:53:16 +00:00
commit 115a8be2be

View File

@ -18,53 +18,8 @@ stages:
- stage: Build - stage: Build
jobs: jobs:
- job: SetupEnvironment
displayName: "Setup Build Environment"
steps:
- checkout: self
persistCredentials: true
fetchDepth: 0
- task: PowerShell@2
name: "diffStep"
inputs:
targetType: 'inline'
script: |
Write-Host "##[section]All Environment Variables:"
Get-ChildItem env: | Format-Table -AutoSize
Write-Host "##[section]Specific Variable Example:"
Write-Host "BUILD_SOURCEBRANCH = $env:BUILD_SOURCEBRANCH"
Write-Host "BUILD_REPOSITORY_NAME = $env:BUILD_REPOSITORY_NAME"
git fetch origin "$(Build.SourceBranchName)" main
$diffResult = git diff --name-only origin/main...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
}
Write-Host "git diff result is $diffResult"
$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'
- job: LinuxBuild - job: LinuxBuild
displayName: 'Build on Linux' displayName: 'Build on Linux'
dependsOn: SetupEnvironment
variables:
folderChanged: $[ dependencies.SetupEnvironment.outputs['diffStep.folderChanged'] ]
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
steps: steps:
@ -80,11 +35,13 @@ stages:
versionSpec: '20.x' versionSpec: '20.x'
- task: PowerShell@2 - task: PowerShell@2
displayName: 'Run Make File'
inputs: inputs:
filePath: 'make.ps1' filePath: 'make.ps1'
arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-linux' arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-linux'
- task: ArchiveFiles@2 - task: ArchiveFiles@2
displayName: 'Archive Web Artifact'
inputs: inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-linux/web' rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-linux/web'
includeRootFolder: true includeRootFolder: true
@ -93,13 +50,14 @@ stages:
replaceExistingArchive: true replaceExistingArchive: true
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs: inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/web.zip' PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/web.zip'
ArtifactName: 'drop-linux-web' ArtifactName: 'drop-linux-web'
publishLocation: 'Container' publishLocation: 'Container'
- task: ArchiveFiles@2 - task: ArchiveFiles@2
condition: eq(variables['folderChanged'], 'True') displayName: 'Archive Migration Artifact'
inputs: inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-linux/migration' rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-linux/migration'
includeRootFolder: true includeRootFolder: true
@ -108,7 +66,7 @@ stages:
replaceExistingArchive: true replaceExistingArchive: true
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
condition: eq(variables['folderChanged'], 'True') displayName: 'Publish Migration Artifact'
inputs: inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/migration.zip' PathtoPublish: '$(Build.ArtifactStagingDirectory)-linux/$(Build.BuildId)/migration.zip'
ArtifactName: 'drop-linux-migration' ArtifactName: 'drop-linux-migration'
@ -116,10 +74,7 @@ stages:
- job: WindowsBuild - job: WindowsBuild
displayName: 'Build on Windows' displayName: 'Build on Windows'
dependsOn: SetupEnvironment
condition: ne(variables['Build.Reason'], 'PullRequest') condition: ne(variables['Build.Reason'], 'PullRequest')
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:
@ -135,11 +90,13 @@ stages:
versionSpec: '20.x' versionSpec: '20.x'
- task: PowerShell@2 - task: PowerShell@2
displayName: 'Run Make File'
inputs: inputs:
filePath: 'make.ps1' filePath: 'make.ps1'
arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-windows' arguments: '-OutputDir $(Build.ArtifactStagingDirectory)-windows'
- task: ArchiveFiles@2 - task: ArchiveFiles@2
displayName: 'Archive Web Artifact'
inputs: inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-windows/web' rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-windows/web'
includeRootFolder: true includeRootFolder: true
@ -147,13 +104,14 @@ stages:
archiveFile: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip' archiveFile: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip'
replaceExistingArchive: true replaceExistingArchive: true
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
displayName: 'Archive Migration Artifact'
inputs: inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip' PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/web.zip'
ArtifactName: 'drop-windows-web' ArtifactName: 'drop-windows-web'
publishLocation: 'Container' publishLocation: 'Container'
- task: ArchiveFiles@2 - task: ArchiveFiles@2
condition: eq(variables['folderChanged'], 'True') displayName: 'Archive Migration Artifact'
inputs: inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-windows/migration' rootFolderOrFile: '$(Build.ArtifactStagingDirectory)-windows/migration'
includeRootFolder: true includeRootFolder: true
@ -162,7 +120,7 @@ stages:
replaceExistingArchive: true replaceExistingArchive: true
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
condition: eq(variables['folderChanged'], 'True') displayName: 'Publish Migration Artifact'
inputs: inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/migration.zip' PathtoPublish: '$(Build.ArtifactStagingDirectory)-windows/$(Build.BuildId)/migration.zip'
ArtifactName: 'drop-windows-migration' ArtifactName: 'drop-windows-migration'