diff options
| -rw-r--r-- | .ci/templates/job-uhd-build-src.yml | 15 | ||||
| -rw-r--r-- | .ci/templates/stages-uhd-pipeline.yml | 14 | ||||
| -rw-r--r-- | .ci/templates/steps-build-uhd-make.yml | 39 | ||||
| -rw-r--r-- | .ci/uhd-pipeline-pr.yml | 11 | 
4 files changed, 78 insertions, 1 deletions
diff --git a/.ci/templates/job-uhd-build-src.yml b/.ci/templates/job-uhd-build-src.yml index a5909388a..25f8b4897 100644 --- a/.ci/templates/job-uhd-build-src.yml +++ b/.ci/templates/job-uhd-build-src.yml @@ -3,10 +3,15 @@ parameters:    type: string    values:    - make +  - make_custom_boost_version    - make_trace    - ninja    - msbuild    - ubuntu_deb +- name: 'custom_boost_version_url' +  type: string +  default: 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2' +  jobs:  - job: build_ctest_and_upload_uhd_${{ parameters.toolset }} @@ -35,7 +40,7 @@ jobs:    strategy:      ${{ if eq(parameters.toolset, 'msbuild') }}:        matrix: $[ variables.dockerImageMatrixWin ] -    ${{ if or(eq(parameters.toolset, 'make'), eq(parameters.toolset, 'make_trace'), eq(parameters.toolset, 'ninja')) }}: +    ${{ if or(eq(parameters.toolset, 'make'), eq(parameters.toolset, 'make_trace'), eq(parameters.toolset, 'ninja'), eq(parameters.toolset, 'make_custom_boost_version')) }}:        matrix: $[ variables.dockerImageMatrixLin ]      ${{ if eq(parameters.toolset, 'ubuntu_deb') }}:        matrix: $[ variables.dockerImageMatrixUbuntuDeb ] @@ -87,6 +92,14 @@ jobs:          uhdBuildDir: $(Build.BinariesDirectory)/uhddev          ubuntuReleaseName: $(ubuntuReleaseName) +  - ${{ if eq(parameters.toolset, 'make_custom_boost_version') }}: +    - template: steps-build-uhd-make.yml +      parameters: +        uhdSrcDir: $(Build.SourcesDirectory) +        uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build +        uhdCustomBoostPackage: true +        uhdCustomBoostPackageURL: ${{ parameters.custom_boost_version_url }} +    - task: ArchiveFiles@2      inputs:        rootFolderOrFile: $(Build.BinariesDirectory) diff --git a/.ci/templates/stages-uhd-pipeline.yml b/.ci/templates/stages-uhd-pipeline.yml index 99c607e03..f7d705fed 100644 --- a/.ci/templates/stages-uhd-pipeline.yml +++ b/.ci/templates/stages-uhd-pipeline.yml @@ -4,6 +4,14 @@  # SPDX-License-Identifier: LGPL-3.0-or-later  # +parameters: +- name: custom_boost_version +  type: boolean +  default: false +- name: custom_boost_version_url +  type: string +  default: 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2' +  variables:  - template: ../uhd-pipeline-vars.yml @@ -33,6 +41,12 @@ stages:    - template: job-uhd-build-src.yml      parameters:        toolset: ubuntu_deb +  - ${{ if parameters.custom_boost_version }}: +    - template: job-uhd-build-src.yml +      parameters: +        toolset: make_custom_boost_version +        custom_boost_version_url: ${{ parameters.custom_boost_version_url }} +  - stage: test_uhd_stage    displayName: Test UHD diff --git a/.ci/templates/steps-build-uhd-make.yml b/.ci/templates/steps-build-uhd-make.yml index 7073447af..1882b53ba 100644 --- a/.ci/templates/steps-build-uhd-make.yml +++ b/.ci/templates/steps-build-uhd-make.yml @@ -12,8 +12,43 @@ parameters:  - name: uhdCxxFlags    type: string    default: "" +- name: uhdCustomBoostPackage +  type: boolean +  default: false +- name: uhdCustomBoostPackageURL +  type: string +  default: 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2' +  steps: +# If we are requested to use a custom Boost package, then we download and build +# it first +- ${{ if parameters.uhdCustomBoostPackage }}: +  - bash: | +      cd $(Pipeline.Workspace) +      echo "Entering workspace directory:" +      pwd +      rm -rf boost +      mkdir boost +      cd boost +      # We reimplement tar's -a flag here so we can pipe from curl straight to tar +      if [[ "${{ parameters.uhdCustomBoostPackageURL }}" =~ bz2$ ]]; then +          export TAR_EXTRACT_FLAG="j" +      elif [[ "${{ parameters.uhdCustomBoostPackageURL }}" =~ gz2$ ]]; then +          export TAR_EXTRACT_FLAG="x" +      elif [[ "${{ parameters.uhdCustomBoostPackageURL }}" =~ xz$ ]]; then +          export TAR_EXTRACT_FLAG="J" +      fi +      curl -L ${{ parameters.uhdCustomBoostPackageURL }} | tar -x -$TAR_EXTRACT_FLAG +      export BOOST_DIR=`pwd`/`ls | head -1` +      echo "Using Boost directory: $BOOST_DIR" +      echo "##vso[task.setvariable variable=CustomBoostPath;isOutput=true;]$BOOST_DIR" +      cd $BOOST_DIR +      ./bootstrap.sh +      ./b2 -j$(nproc) +    displayName: "Build Custom Boost Version" +    name: build_boost_step +  - script: |      mkdir -p ${{ parameters.uhdBuildDir }}      cd ${{ parameters.uhdBuildDir }} @@ -26,6 +61,10 @@ steps:        export CXXFLAGS="-Werror -Wno-error=maybe-uninitialized $CXXFLAGS"      fi      export CXXFLAGS="${{ parameters.uhdCxxFlags }} $CXXFLAGS" +    if [[ "${{ parameters.uhdCustomBoostPackage }}" = "True" ]]; then +      export BOOST_CMAKE_DIR=$(dirname `find $(build_boost_step.CustomBoostPath)/stage/lib -name BoostConfig.cmake`) +      export UHD_CI_CMAKE_OPTIONS="-DBoost_INCLUDE_DIR=$(build_boost_step.CustomBoostPath) -DBoost_DIR=$BOOST_CMAKE_DIR -DBoost_LIBRARY_DIRS=$(build_boost_step.CustomBoostPath)/stage/lib $UHD_CI_CMAKE_OPTIONS" +    fi      cmake \        $UHD_CI_CMAKE_OPTIONS \        ${{ parameters.uhdSrcDir }}/host diff --git a/.ci/uhd-pipeline-pr.yml b/.ci/uhd-pipeline-pr.yml index c48ffb325..13949c5e8 100644 --- a/.ci/uhd-pipeline-pr.yml +++ b/.ci/uhd-pipeline-pr.yml @@ -4,6 +4,14 @@  # SPDX-License-Identifier: LGPL-3.0-or-later  # +parameters: +- name: custom_boost_version +  type: boolean +  default: false +- name: custom_boost_version_url +  type: string +  default: 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2' +  trigger: none  pr: @@ -23,3 +31,6 @@ pr:  extends:    template: templates/stages-uhd-pipeline.yml +  parameters: +    custom_boost_version: ${{ parameters.custom_boost_version }} +    custom_boost_version_url: ${{ parameters.custom_boost_version_url }}  | 
