diff --git a/scripts/azure-pipelines/azure-pipelines.yml b/scripts/azure-pipelines/azure-pipelines.yml index c5aefb60a9..f810a2e6a2 100644 --- a/scripts/azure-pipelines/azure-pipelines.yml +++ b/scripts/azure-pipelines/azure-pipelines.yml @@ -1,56 +1,44 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # - variables: - clean-tombstones: 'false' -stages: - - stage: Clean_Tombstones - displayName: 'Clean Tombstones' - jobs: - - job: - displayName: 'Clean Tombstones' - pool: - name: PrWin-2020-04-22 - condition: eq(variables['clean-tombstones'], 'true') - timeoutInMinutes: 10 - steps: - - task: PowerShell@2 - displayName: 'Initialize Environment' - inputs: - filePath: 'scripts/azure-pipelines/windows/initialize-environment.ps1' - - powershell: | - Remove-Item archives\fail -Force -Recurse - displayName: 'Delete archives\fail' + windows-pool: 'PrWin-2020-04-22' - - stage: Build - jobs: - - template: windows/azure-pipelines.yml - parameters: - triplet: x86-windows - jobName: x86_windows +jobs: + - template: windows/azure-pipelines.yml + parameters: + triplet: x86-windows + jobName: x86_windows + poolName: $(windows-pool) - - template: windows/azure-pipelines.yml - parameters: - triplet: x64-windows - jobName: x64_windows + - template: windows/azure-pipelines.yml + parameters: + triplet: x64-windows + jobName: x64_windows + poolName: $(windows-pool) - - template: windows/azure-pipelines.yml - parameters: - triplet: x64-windows-static - jobName: x64_windows_static + - template: windows/azure-pipelines.yml + parameters: + triplet: x64-windows-static + jobName: x64_windows_static + poolName: $(windows-pool) - - template: windows/azure-pipelines.yml - parameters: - triplet: x64-uwp - jobName: x64_uwp + - template: windows/azure-pipelines.yml + parameters: + triplet: x64-uwp + jobName: x64_uwp + poolName: $(windows-pool) - - template: windows/azure-pipelines.yml - parameters: - triplet: arm64-windows - jobName: arm64_windows + - template: windows/azure-pipelines.yml + parameters: + triplet: arm64-windows + jobName: arm64_windows + poolName: $(windows-pool) - - template: windows/azure-pipelines.yml - parameters: - triplet: arm-uwp - jobName: arm_uwp + - template: windows/azure-pipelines.yml + parameters: + triplet: arm-uwp + jobName: arm_uwp + poolName: $(windows-pool) + + - template: macos/azure-pipelines.yml diff --git a/scripts/azure-pipelines/macos/azure-pipelines.yml b/scripts/azure-pipelines/macos/azure-pipelines.yml new file mode 100644 index 0000000000..c540628024 --- /dev/null +++ b/scripts/azure-pipelines/macos/azure-pipelines.yml @@ -0,0 +1,70 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: MIT +# + +jobs: +- job: x64_osx + pool: + name: vcpkgAgentPool + demands: Agent.OS -equals Darwin + + steps: + - bash: | + rm -rf installed || true + mkdir -p ~/Data/installed || true + ln -s ~/Data/installed + rm -rf ~/Data/installed/* || true + + rm -rf buildtrees || true + mkdir -p ~/Data/buildtrees || true + ln -s ~/Data/buildtrees + rm -rf ~/Data/buildtrees/* || true + + rm -rf packages || true + mkdir -p ~/Data/packages || true + ln -s ~/Data/packages + rm -rf ~/Data/packages/* || true + + rm archives || rm -rf archives || true + ln -s ~/Data/archives + + rm -rf downloads || true + mkdir -p ~/Data/downloads || true + ln -s ~/Data/downloads + + if [ -d downloads/ ]; then + #delete downloaded files that have not been used in 7 days + find downloads/ -maxdepth 1 -type f ! -atime 7 -exec rm -f {} \; + fi + + displayName: 'Setup Environment' + + - bash: | + brew list autoconf || brew install autoconf + brew list automake || brew install automake + brew list libtool || brew install libtool + displayName: 'Install brew dependencies' + + - bash: | + ./bootstrap-vcpkg.sh -allowAppleClang + displayName: 'Build vcpkg' + + - powershell: | + $skip_list = ./scripts/azure-pipelines/generate-skip-list.ps1 -Triplet "x64-osx" -BaselineFile "$(System.DefaultWorkingDirectory)/scripts/ci.baseline.txt" + mkdir $(System.ArtifactsDirectory)/xml-results + ./vcpkg ci x64-osx --x-xunit="$(System.ArtifactsDirectory)/xml-results/x64-osx.xml" --exclude=$skip_list --binarycaching + displayName: '** Test Modified Ports **' + + - task: PowerShell@2 + displayName: 'Analyze results and prepare test logs' + inputs: + failOnStderr: true + filePath: 'scripts/azure-pipelines/analyze-test-results.ps1' + arguments: '-baselineFile $(System.DefaultWorkingDirectory)/scripts/ci.baseline.txt -logDir "$(System.ArtifactsDirectory)/xml-results" -outputDir "$(Build.ArtifactStagingDirectory)" -failurelogDir ~/Data/archives/fail -triplets "x64-osx" -errorOnRegression' + + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: x64-osx port build failure logs' + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/failureLogs' + ArtifactName: 'Port build failure logs' + condition: failed() diff --git a/scripts/azure-pipelines/windows/azure-pipelines.yml b/scripts/azure-pipelines/windows/azure-pipelines.yml index 9a7f01e7bd..2e2e38c961 100644 --- a/scripts/azure-pipelines/windows/azure-pipelines.yml +++ b/scripts/azure-pipelines/windows/azure-pipelines.yml @@ -5,7 +5,7 @@ jobs: - job: ${{ parameters.jobName }} pool: - name: PrWin-2020-04-22 + name: ${{ parameters.poolName }} variables: triplet: '${{ parameters.triplet }}' @@ -26,7 +26,7 @@ jobs: $(System.DefaultWorkingDirectory)\scripts\azure-pipelines\windows\ci-step.ps1 -Triplet "$(triplet)" -ExcludePorts $skipList Write-Host "CI test script is complete" errorActionPreference: continue - displayName: '** Build vcpkg and test ports **' + displayName: '** Build vcpkg and Test Modified Ports **' - powershell: | $baseName = "$(triplet)"