mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
ci: Integrate SBOM generation for installer packages
- Created a step templates in the private repo ettus-rts to encapsulate steps for SBOM generation for installer packages, enabling internal dependency and vulnerability tracking.
This commit is contained in:
parent
ca5de0773b
commit
d5bc1942ce
@ -28,6 +28,9 @@ parameters:
|
||||
values:
|
||||
- 'Internal'
|
||||
- 'files.ettus.com (Public)'
|
||||
- name: create_sbom
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
- job: build_uhd_installer_${{ parameters.toolset }}
|
||||
@ -82,32 +85,75 @@ jobs:
|
||||
#pbuilder requires access to /proc
|
||||
options: --privileged
|
||||
steps:
|
||||
# Job uses template which causes self checkout to result in different values
|
||||
# for $(Build.SourcesDirectory) due to single vs multiple repositories use.
|
||||
# Switching to use manual path definition $(Pipeline.Workspace)/s/<RepoName>
|
||||
# for consistent behavior to avoid
|
||||
# $(Pipeline.Workspace)/s vs $(Pipeline.Workspace)/s/<RepoName>).
|
||||
# Custom path now includes <RepoName>, which is now hardcoded, rather than
|
||||
# use name from git repo (avoids problem when building from public uhd repo).
|
||||
# Checkout path needs to be defined relative to $(Pipeline.Workspace).
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: 's/uhddev'
|
||||
# Need to use OS specific steps because predefined variable
|
||||
# (i.e. $(Pipeline.Workspace) on Linux is treated as runtime shell expansion,
|
||||
# but actually handled by Azure and the quotes ensure correct, delayed variable
|
||||
# expansion. On Windows variables are exanded before script runs, and
|
||||
# using quotes results in leading or trailing quotes in the variable value.
|
||||
- script: |
|
||||
echo "##vso[task.setvariable variable=uhdSrcDir]$(Pipeline.Workspace)/s/uhddev"
|
||||
condition: eq( variables['Agent.OS'], 'Linux' )
|
||||
displayName: 'Define uhdSrcDir variable (Linux)'
|
||||
- script: |
|
||||
echo ##vso[task.setvariable variable=uhdSrcDir]$(Pipeline.Workspace)\s\uhddev
|
||||
condition: eq( variables['Agent.OS'], 'Windows_NT' )
|
||||
displayName: 'Define uhdSrcDir variable (Windows)'
|
||||
|
||||
|
||||
- download: uhd_build_docker_container
|
||||
- ${{ if eq(parameters.toolset, 'fedora_rpm') }}:
|
||||
- template: steps-build-uhd-installer-fedora-rpm.yml
|
||||
parameters:
|
||||
uhdSrcDir: $(Build.SourcesDirectory)
|
||||
uhdSrcDir: $(uhdSrcDir)
|
||||
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
||||
uhdInstallerDir: $(Build.BinariesDirectory)/uhddev-installer
|
||||
fedoraReleaseName: $(fedoraReleaseName)
|
||||
releaseBinaries: ${{ parameters.releaseBinaries }}
|
||||
cmake_args: ${{ parameters.cmake_args }}
|
||||
- ${{ if parameters.create_sbom }}:
|
||||
- template: .ci/templates/steps-linux-sbom.yml@ettus-rts
|
||||
parameters:
|
||||
toolset: ${{ parameters.toolset }}
|
||||
installer: ${{ parameters.installer }}
|
||||
sbomComponentList: 'uhd libuhd libboost libusb'
|
||||
buildOSName: $(buildOSName)
|
||||
osReleaseName: $(fedoraReleaseName)
|
||||
uhdSrcDir: $(uhdSrcDir)
|
||||
uhdInstallerDir: $(Build.BinariesDirectory)/uhddev-installer
|
||||
- ${{ if eq(parameters.toolset, 'ubuntu_deb') }}:
|
||||
- template: steps-build-uhd-installer-ubuntu-deb.yml
|
||||
parameters:
|
||||
uhdSrcDir: $(Build.SourcesDirectory)
|
||||
uhdSrcDir: $(uhdSrcDir)
|
||||
uhdInstallerDir: $(Build.BinariesDirectory)/uhddev-installer
|
||||
ubuntuReleaseName: $(ubuntuReleaseName)
|
||||
cmake_args: ${{ parameters.cmake_args }}
|
||||
- ${{ if parameters.create_sbom }}:
|
||||
- template: .ci/templates/steps-linux-sbom.yml@ettus-rts
|
||||
parameters:
|
||||
toolset: ${{ parameters.toolset }}
|
||||
installer: ${{ parameters.installer }}
|
||||
sbomComponentList: 'uhd libuhd'
|
||||
buildOSName: $(buildOSName)
|
||||
osReleaseName: $(ubuntuReleaseName)
|
||||
uhdSrcDir: $(uhdSrcDir)
|
||||
uhdInstallerDir: $(Build.BinariesDirectory)/uhddev-installer
|
||||
- ${{ if and(eq(parameters.toolset, 'msbuild'), eq(parameters.installer, 'nsis')) }}:
|
||||
- template: steps-build-uhd-installer-msbuild-nsis.yml
|
||||
parameters:
|
||||
uhdSrcDir: $(Build.SourcesDirectory)
|
||||
uhdSrcDir: $(uhdSrcDir)
|
||||
uhdBuildDir: c:\uhddev\build
|
||||
uhdInstallerDir: c:\uhddev-installer
|
||||
uhdInstallerDir: $(Build.BinariesDirectory)\uhddev-installer
|
||||
uhdImageDir: c:\uhd-images
|
||||
uhdVcpkgManifestDir: c:\uhd-vcpkg
|
||||
uhdReleaseBinaries: ${{ parameters.releaseBinaries }}
|
||||
@ -120,8 +166,21 @@ jobs:
|
||||
vsYear: $(vsYear)
|
||||
cleanTargetFolder: False
|
||||
cmake_args: ${{ parameters.cmake_args }}
|
||||
- ${{ if parameters.create_sbom }}:
|
||||
- template: .ci/templates/steps-windows-sbom.yml@ettus-rts
|
||||
parameters:
|
||||
sbomComponentList: ''
|
||||
buildOSName: $(buildOSName)
|
||||
uhdSrcDir: $(uhdSrcDir)
|
||||
uhdInstallerDir: $(Build.BinariesDirectory)\uhddev-installer
|
||||
uhdBuildDir: c:\uhddev\build
|
||||
uhdVcpkgManifestDir: c:\uhd-vcpkg
|
||||
uhdBuildPythonAPI: True
|
||||
vsArch: $(vsArch)
|
||||
vsYear: $(vsYear)
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
targetPath: '$(Build.BinariesDirectory)/uhddev-installer'
|
||||
artifactName: 'uhddev-$(buildOSName)-${{ parameters.toolset }}-${{ parameters.installer }}-installer'
|
||||
artifactName: 'uhddev-$(buildOSName)-${{ parameters.toolset }}-${{ parameters.installer }}-installer-run$(System.JobAttempt)'
|
||||
displayName: Upload uhd installer artifact
|
||||
condition: or(succeeded(), failed())
|
||||
|
||||
@ -28,7 +28,7 @@ parameters:
|
||||
default: 'smoke'
|
||||
- name: create_sbom
|
||||
type: boolean
|
||||
displayName: Create SBOM for filesystem images
|
||||
displayName: Create SBOMs
|
||||
default: true
|
||||
- name: build_sdk
|
||||
type: boolean
|
||||
@ -481,6 +481,7 @@ stages:
|
||||
toolset: ubuntu_deb
|
||||
installer: deb
|
||||
cmake_args: ${{ parameters.cmake_args }}
|
||||
create_sbom: ${{ parameters.create_sbom }}
|
||||
|
||||
- stage: build_uhd_installer_stage_fedora
|
||||
displayName: Build UHD Installers Fedora
|
||||
@ -493,6 +494,7 @@ stages:
|
||||
installer: rpm
|
||||
cmake_args: ${{ parameters.cmake_args }}
|
||||
releaseBinaries: ${{ parameters.release_binaries }}
|
||||
create_sbom: ${{ parameters.create_sbom }}
|
||||
|
||||
- stage: build_uhd_installer_stage_win
|
||||
displayName: Build UHD Installers Windows
|
||||
@ -516,6 +518,7 @@ stages:
|
||||
fpga_imgs_source: 'files.ettus.com'
|
||||
${{ else }}:
|
||||
fpga_imgs_source: 'Internal'
|
||||
create_sbom: ${{ parameters.create_sbom }}
|
||||
- ${{ if parameters.release_binaries }}:
|
||||
- template: job-uhd-build-installer-signing.yml
|
||||
parameters:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user