From f10c49281abbd42ff5aa9a0a3846d935c41b943a Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Thu, 25 Jun 2020 16:38:13 -0700 Subject: [vcpkg] Add disk space report to Windows PR/CI (#12113) * [vcpkg] Add disk space report to PR/CI Example output: ``` Disk Label Size Free Space ---- ----- ---- ---------- C: Sabrent 1907 GiB 1239 GiB D: Dev 447 GiB 383 GiB E: Samsung 960 Pro 1908 GiB 1084 GiB H: Rocket 3815 GiB 863 GiB R: 0 B 0 B S: 0 B 0 B ``` --- .../azure-pipelines/windows/azure-pipelines.yml | 10 +++++++ scripts/azure-pipelines/windows/disk-space.ps1 | 35 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 scripts/azure-pipelines/windows/disk-space.ps1 (limited to 'scripts') diff --git a/scripts/azure-pipelines/windows/azure-pipelines.yml b/scripts/azure-pipelines/windows/azure-pipelines.yml index 0f2120746..69ea089d6 100644 --- a/scripts/azure-pipelines/windows/azure-pipelines.yml +++ b/scripts/azure-pipelines/windows/azure-pipelines.yml @@ -15,6 +15,11 @@ jobs: displayName: 'Initialize Environment' inputs: filePath: 'scripts/azure-pipelines/windows/initialize-environment.ps1' + - task: PowerShell@2 + displayName: 'Report on Disk Space' + condition: always() + inputs: + filePath: 'scripts/azure-pipelines/windows/disk-space.ps1' # Note: D: is the Azure machines' temporary disk. - task: CmdLine@2 displayName: 'Build vcpkg' @@ -48,6 +53,11 @@ jobs: inputs: testResultsFiles: '$(System.ArtifactsDirectory)/xml-results/${{ parameters.triplet }}.xml' condition: always() + - task: PowerShell@2 + displayName: 'Report on Disk Space After Build' + condition: always() + inputs: + filePath: 'scripts/azure-pipelines/windows/disk-space.ps1' - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: ${{ parameters.triplet }} port build failure logs' inputs: diff --git a/scripts/azure-pipelines/windows/disk-space.ps1 b/scripts/azure-pipelines/windows/disk-space.ps1 new file mode 100644 index 000000000..8680d7701 --- /dev/null +++ b/scripts/azure-pipelines/windows/disk-space.ps1 @@ -0,0 +1,35 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: MIT +# + +<# +.SYNOPSIS +Prints total and free disk space for each disk on the system +#> + +Function Format-Size { + [CmdletBinding()] + Param([long]$Size) + + if ($Size -lt 1024) { + $Size = [int]$Size + return "$Size B" + } + + $Size = $Size / 1024 + if ($Size -lt 1024) { + $Size = [int]$Size + return "$Size KiB" + } + + $Size = $Size / 1024 + if ($Size -lt 1024) { + $Size = [int]$Size + return "$Size MiB" + } + + $Size = [int]($Size / 1024) + return "$Size GiB" +} + +Get-CimInstance -ClassName Win32_LogicalDisk | Format-Table -Property @{Label="Disk"; Expression={ $_.DeviceID }},@{Label="Label"; Expression={ $_.VolumeName }},@{Label="Size"; Expression={ Format-Size($_.Size) }},@{Label="Free Space"; Expression={ Format-Size($_.FreeSpace) }} -- cgit v1.2.3