Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions eng/pipelines/templates/jobs/build-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,12 @@ jobs:
displayName: Publish test results
condition: succeededOrFailed()

- template: /eng/pipelines/templates/steps/cleanup-disk-space.yml
Comment thread
vhvb1989 marked this conversation as resolved.
parameters:
Condition: succeededOrFailed()
CleanNuGet: true
CleanDotNet: true

Comment thread
vhvb1989 marked this conversation as resolved.
- task: PowerShell@2
inputs:
pwsh: true
Expand Down Expand Up @@ -200,10 +206,22 @@ jobs:
workingDirectory: cli/azd
displayName: Copy binary to artifact staging directory

- template: /eng/pipelines/templates/steps/cleanup-disk-space.yml
parameters:
CleanGoCache: true
CleanDocker: true
CleanSystemCaches: true
Condition: and(succeeded(), eq(variables['BuildLinuxPackages'], 'true'))

- template: /eng/pipelines/templates/steps/build-linux-packages.yml
parameters:
Condition: and(succeeded(), eq(variables['BuildLinuxPackages'], 'true'))

- template: /eng/pipelines/templates/steps/cleanup-disk-space.yml
parameters:
CleanDocker: true
Condition: and(succeeded(), eq(variables['BuildLinuxPackages'], 'true'))

Comment thread
vhvb1989 marked this conversation as resolved.
- pwsh: New-Item -ItemType Directory -Path $(Build.ArtifactStagingDirectory)/shield -Force
condition: and(succeeded(), eq(variables['SetShieldInfo'], 'true'))
displayName: Create shield artifact directory
Expand Down
12 changes: 12 additions & 0 deletions eng/pipelines/templates/jobs/cross-build-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,22 @@ jobs:
workingDirectory: cli/azd
displayName: Copy binary to artifact staging directory

- template: /eng/pipelines/templates/steps/cleanup-disk-space.yml
parameters:
CleanGoCache: true
CleanDocker: true
CleanSystemCaches: true
Condition: and(succeeded(), eq(variables['BuildLinuxPackages'], 'true'))

- template: /eng/pipelines/templates/steps/build-linux-packages.yml
parameters:
Architecture: arm64
Condition: and(succeeded(), eq(variables['BuildLinuxPackages'], 'true'))

- template: /eng/pipelines/templates/steps/cleanup-disk-space.yml
parameters:
CleanDocker: true
Condition: and(succeeded(), eq(variables['BuildLinuxPackages'], 'true'))

Comment thread
vhvb1989 marked this conversation as resolved.
templateContext:
outputs:
Expand Down
5 changes: 5 additions & 0 deletions eng/pipelines/templates/stages/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ parameters:
GOOS: linux
GOARCH: arm64
BuildLinuxPackages: true
# Set special temp/cache directory overrides to avoid out of space
# issues on hosted agents
DOCKER_TMPDIR: $(Agent.TempDirectory)
TMPDIR: $(Agent.TempDirectory)
GOCACHE: $(Agent.TempDirectory)/go-cache
MacARM64:
Pool: Azure Pipelines
OSVmImage: $(MACVMIMAGE)
Expand Down
68 changes: 68 additions & 0 deletions eng/pipelines/templates/steps/cleanup-disk-space.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
parameters:
- name: CleanDocker
type: boolean
default: false
- name: CleanGoCache
type: boolean
default: false
- name: CleanNuGet
type: boolean
default: false
- name: CleanDotNet
type: boolean
default: false
- name: CleanSystemCaches
type: boolean
default: false
- name: Condition
type: string
default: succeeded()

steps:
- bash: df -h /
displayName: Disk usage (before cleanup)
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true

- ${{ if eq(parameters.CleanDocker, true) }}:
- bash: docker system prune -af --volumes
displayName: Cleanup Docker
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true

- ${{ if eq(parameters.CleanGoCache, true) }}:
- bash: |
go clean -cache
go clean -testcache
displayName: Cleanup Go cache
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true

- ${{ if eq(parameters.CleanNuGet, true) }}:
- bash: dotnet nuget locals all --clear
displayName: Cleanup NuGet cache
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true

- ${{ if eq(parameters.CleanDotNet, true) }}:
- bash: |
rm -rf /tmp/NuGetScratch
rm -rf /tmp/.dotnet
displayName: Cleanup .NET temp artifacts
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true

- ${{ if eq(parameters.CleanSystemCaches, true) }}:
- bash: |
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo rm -rf /var/cache/apt/archives/*
rm -rf /tmp/go-build*
displayName: Cleanup system caches
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true

- bash: df -h /
displayName: Disk usage (after cleanup)
condition: and(${{ parameters.Condition }}, eq(variables['Agent.OS'], 'Linux'))
continueOnError: true
Loading