5a2a95998c
Why I did it Azure pipeline change. Use common template to make it easy to change common steps. Fix docker hang issue. How I did it
73 lines
2.9 KiB
YAML
73 lines
2.9 KiB
YAML
# The azure pipeline template for PR build, Official build, and upgrade version build
|
|
|
|
parameters:
|
|
- name: 'jobFilters'
|
|
type: object
|
|
default: ''
|
|
- name: 'preSteps'
|
|
type: stepList
|
|
default: []
|
|
- name: 'buildSteps'
|
|
type: stepList
|
|
default: []
|
|
- name: 'postSteps'
|
|
type: stepList
|
|
default: []
|
|
- name: jobGroups
|
|
type: object
|
|
default: []
|
|
- name: jobVariables
|
|
type: object
|
|
default: []
|
|
jobs:
|
|
- template: azure-pipelines-job-groups.yml
|
|
parameters:
|
|
jobFilters: ${{ parameters.jobFilters }}
|
|
jobVariables: ${{ parameters.jobVariables }}
|
|
preSteps:
|
|
- template: .azure-pipelines/cleanup.yml@buildimage
|
|
- ${{ parameters.preSteps }}
|
|
- script: |
|
|
if [ -n "$(CACHE_MODE)" ] && echo $(PLATFORM_AZP) | grep -E -q "^(vs|broadcom|mellanox|marvell-armhf)$"; then
|
|
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=$(CACHE_MODE) SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/$(PLATFORM_AZP)"
|
|
BUILD_OPTIONS="$(BUILD_OPTIONS) $CACHE_OPTIONS"
|
|
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
|
|
fi
|
|
displayName: "Set cache options"
|
|
- checkout: self
|
|
submodules: recursive
|
|
fetchDepth: 0
|
|
condition: and(succeeded(), eq(variables.SKIP_CHECKOUT, ''))
|
|
displayName: 'Checkout code'
|
|
- script: |
|
|
BRANCH_NAME=$(Build.SourceBranchName)
|
|
[ -n "$SYSTEM_PULLREQUEST_PULLREQUESTID" ] && BRANCH_NAME="$SYSTEM_PULLREQUEST_TARGETBRANCH-$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER"
|
|
git checkout -b $BRANCH_NAME
|
|
sudo modprobe overlay
|
|
sudo apt-get install -y acl
|
|
sudo bash -c "echo 1 > /proc/sys/vm/compact_memory"
|
|
ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) $(BUILD_OPTIONS) configure
|
|
displayName: 'Make configure'
|
|
postSteps:
|
|
- script: |
|
|
mkdir -p $(Build.ArtifactStagingDirectory)/target
|
|
mv target/* $(Build.ArtifactStagingDirectory)/target/
|
|
displayName: Copy Artifacts
|
|
condition: always()
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
|
|
displayName: "Archive sonic image"
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
condition: or(failed(), canceled())
|
|
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)'
|
|
displayName: "Archive failed sonic image"
|
|
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
|
|
- template: trigger-publish-artifacts-build.yml
|
|
parameters:
|
|
artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
|
|
publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)'
|
|
- ${{ parameters.postSteps }}
|
|
- template: .azure-pipelines/cleanup.yml@buildimage
|
|
jobGroups: ${{ parameters.jobGroups }}
|
|
buildSteps: ${{ parameters.buildSteps }}
|