uhd/.ci/templates/stages-uhd-pipeline.yml
Steven Koo d22bfbddc3 ci: set meta-ettus-dev repo to zeus-ci
Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-07-20 15:57:20 -05:00

279 lines
7.4 KiB
YAML

#
# Copyright 2021 Ettus Research, a National Instruments Brand
#
# SPDX-License-Identifier: LGPL-3.0-or-later
#
parameters:
- name: build_linux
type: boolean
default: true
- name: build_mac
type: boolean
default: true
- name: build_win
type: boolean
default: true
- 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'
- name: release_binaries
type: boolean
default: false
- name: testLength
type: string
- name: run_streaming_tests
type: boolean
default: true
- name: build_sdk
type: boolean
default: false
- name: cache_sstate
type: boolean
default: true
- name: build_e310_sg1
type: boolean
default: true
- name: build_e310_sg3
type: boolean
default: true
- name: build_e320
type: boolean
default: true
- name: build_n3xx
type: boolean
default: true
- name: build_x4xx
type: boolean
default: true
variables:
- template: ../uhd-pipeline-vars.yml
resources:
pipelines:
- pipeline: uhd_build_docker_container
source: 'uhddev Build Docker Containers'
branch: master
- pipeline: usrp-kas-pipeline
source: 'usrp-kas'
branch: zeus-ci
repositories:
- repository: meta-ettus
type: github
name: EttusResearch/meta-ettus-dev
endpoint: EttusResearch
ref: zeus-ci
- repository: gnuradio
type: github
name: gnuradio/gnuradio
endpoint: EttusResearch
ref: maint-3.8
- repository: gr-ettus
type: github
name: EttusResearch/gr-ettusdev
endpoint: EttusResearch
ref: master
- repository: ettus-rts
type: github
endpoint: EttusResearch
name: EttusResearch/ettus-rts
ref: master
stages:
- stage: build_uhd_stage_linux
displayName: Build UHD Linux
dependsOn: []
condition: and(succeeded(), ${{ parameters.build_linux }})
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-build-src.yml
parameters:
toolset: make
- template: job-uhd-build-src.yml
parameters:
toolset: make_trace
- template: job-uhd-build-src.yml
parameters:
toolset: ninja
- ${{ 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: build_uhd_stage_win
displayName: Build UHD Windows
dependsOn: []
condition: and(succeeded(), ${{ parameters.build_win }})
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-build-src.yml
parameters:
toolset: msbuild
release_binaries: ${{ parameters.release_binaries }}
- stage: build_uhd_stage_mac
displayName: Build UHD macOS
dependsOn: []
condition: and(succeeded(), ${{ parameters.build_mac }})
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-build-src.yml
parameters:
toolset: make_homebrew_macos
- stage: build_uhd_embedded_system_images
displayName: Build UHD Embedded System Images
dependsOn: []
variables:
AUTO_CONF: $(Agent.BuildDirectory)/auto.conf
jobs:
- template: .ci/templates/job_build_filesystem.yml@meta-ettus
parameters:
build_sdk: ${{ parameters.build_sdk }}
cache_sstate: ${{ parameters.cache_sstate }}
cache_downloads: False
machines:
- ${{ if parameters.build_e310_sg1 }}:
- e310_sg1
- ${{ if parameters.build_e310_sg3 }}:
- e310_sg3
- ${{ if parameters.build_e320 }}:
- e320
- ${{ if parameters.build_n3xx }}:
- n3xx
- ${{ if parameters.build_x4xx }}:
- x4xx
auto_conf: $AUTO_CONF
run_from_external_repo: true
prebuild_steps:
- script: |
rm $(AUTO_CONF)
touch $(AUTO_CONF)
displayName: create auto.conf
- template: .ci/templates/oe_localconf_externalsrc.yml@meta-ettus
parameters:
conf_file: $AUTO_CONF
repository: self
package_paths:
- package: uhd
path: host
- package: mpmd
path: mpm
postbuild_steps:
- script: |
rm $(AUTO_CONF)
displayName: delete auto.conf
condition: always()
- stage: package_uhd_src
displayName: Package UHD Source
dependsOn: []
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-package-src.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
release_binaries: ${{ parameters.release_binaries }}
- stage: build_gnuradio_stage_linux
displayName: Build gnuradio Linux
dependsOn: build_uhd_stage_linux
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-gnuradio-grettus-build-src.yml
parameters:
toolset: make
- stage: build_uhd_installer_stage_ubuntu
displayName: Build UHD Installers Ubuntu
dependsOn: build_uhd_stage_linux
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-build-installer.yml
parameters:
toolset: ubuntu_deb
installer: deb
- stage: build_uhd_installer_stage_fedora
displayName: Build UHD Installers Fedora
dependsOn: build_uhd_stage_linux
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-build-installer.yml
parameters:
toolset: fedora_rpm
installer: rpm
releaseBinaries: ${{ parameters.release_binaries }}
- stage: build_uhd_installer_stage_win
displayName: Build UHD Installers Windows
dependsOn: build_uhd_stage_win
jobs:
- template: job-get-latest-uhd-docker.yml
- template: job-uhd-build-installer.yml
parameters:
toolset: msbuild
installer: nsis
releaseBinaries: ${{ parameters.release_binaries }}
- ${{ if parameters.release_binaries }}:
- template: job-uhd-build-installer-signing.yml
parameters:
toolset: msbuild
installer: nsis
- stage: devtest_uhd_x3xx_b2xx_stage
displayName: devtest UHD x3xx b2xx
dependsOn:
- build_uhd_stage_linux
jobs:
- template: job-uhd-devtest-rhombus.yml
parameters:
testOS: ubuntu2004
uhdSrcDir: $(Build.SourcesDirectory)
testDevices: 'x3xx,b2xx'
- stage: devtest_uhd_n3xx_e320_stage
displayName: devtest UHD n3xx e320
dependsOn:
- build_uhd_stage_linux
- build_uhd_embedded_system_images
jobs:
- template: job-uhd-devtest-rhombus.yml
parameters:
testOS: ubuntu2004
uhdSrcDir: $(Build.SourcesDirectory)
testDevices: 'n3xx,e320'
- stage: test_uhd_x4xx_stage
displayName: Test UHD x4xx
dependsOn:
- build_uhd_stage_linux
- build_uhd_embedded_system_images
- build_gnuradio_stage_linux
jobs:
- template: tests/job-uhd-x4xx-hardware-tests-sdr-test0.yml
parameters:
testOS: ubuntu1804
- template: tests/job-uhd-x4xx-hardware-tests-pebbles.yml
parameters:
testOS: ubuntu1804
- stage: test_streaming_stage
displayName: Test UHD Streaming
dependsOn:
- build_uhd_stage_linux
- build_uhd_embedded_system_images
condition: and(succeeded('build_uhd_stage_linux'), succeeded('build_uhd_embedded_system_images'), ${{ parameters.run_streaming_tests }})
jobs:
- template: job-uhd-streaming-tests-beauty.yml
parameters:
testOS: ubuntu2004
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
testLength: ${{ parameters.testLength }}