46cb2ad03d
Why I did it [Ci] Fix the no parallel jobs in some of the platforms issue We observed some of the pipelines running more time than expected. The issue is the SONIC_BUILD_JOBS using the wrong value 1. It is caused by the runtime variable issue, there is additional single quota mark character added in the make command line. make 'SONIC_BUILD_JOBS=$(nproc)' targe/xxxx Need to change to make SONIC_BUILD_JOBS=$(nproc) targe/xxxx It is to improve the build performance for some of the platforms using the variable SONIC_BUILD_JOBS=1. Good one vs: https://dev.azure.com/mssonic/build/_build/results?buildId=227986&view=logs&j=cef3d8a9-152e-5193-620b-567dc18af272&t=cf595088-5c84-5cf1-9d7e-03331f31d795 "SONIC_BUILD_JOBS" : "8" Bad one barefoot: https://dev.azure.com/mssonic/build/_build/results?buildId=227379&view=logs&j=993d6e22-aeec-5c03-fa19-35ecba587dd9&t=7be0d2ec-661f-5569-462c-2d9b7ca4ca5d "SONIC_BUILD_JOBS" : "1" How I did it Expand the BUILD_OPTIONS variable for all platforms.
74 lines
2.9 KiB
YAML
74 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: |
|
|
BUILD_OPTIONS="$(BUILD_OPTIONS)"
|
|
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"
|
|
fi
|
|
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
|
|
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 }}
|