Skip to content

Commit

Permalink
refa (Laerdal.Builder.targets): all the sboms now get placed under th…
Browse files Browse the repository at this point in the history
…e parent pseudo-project [Group::Laerdal.McuMgr] in the dependency-tracker server
  • Loading branch information
ksidirop-laerdal committed Aug 23, 2024
1 parent 1c4700c commit eaa9711
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
21 changes: 10 additions & 11 deletions Laerdal.Scripts/Laerdal.Builder.targets
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
<Laerdal_RootDirectory_Folderpath>$([System.IO.Path]::Combine( '$(Laerdal_Script_FolderPath)', '..' ))</Laerdal_RootDirectory_Folderpath>
<Laerdal_RootDirectory_Folderpath>$([System.IO.Path]::GetFullPath( '$(Laerdal_RootDirectory_Folderpath)' ))</Laerdal_RootDirectory_Folderpath>

<PackageOutputPath Condition=" '$(PackageOutputPath)' == '' ">$(BUILD_ARTIFACTSTAGINGDIRECTORY)</PackageOutputPath>
<PackageOutputPath Condition=" '$(PackageOutputPath)' == '' ">$([System.IO.Path]::Combine($(Laerdal_RootDirectory_Folderpath), `Artifacts/`))</PackageOutputPath>
<PackageOutputPath>$([System.IO.Path]::GetFullPath( '$(PackageOutputPath)' ))</PackageOutputPath>

Expand All @@ -65,13 +64,13 @@
<!-- -->
<!-- <Laerdal_Bindings_MacCatalyst___Sdk_Version Condition=" '$(Laerdal_Bindings_MacCatalyst___Sdk_Version)' == '' ">14.2</Laerdal_Bindings_MacCatalyst___Sdk_Version> -->
<!-- <Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path Condition=" '$(Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path)' == '' ">/Applications/Xcode.app/Contents/Developer</Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path> -->

<Laerdal_Gradle_Path Condition=" '$(Laerdal_Gradle_Path)' == '' ">gradle</Laerdal_Gradle_Path>
<Laerdal_Source_Branch Condition=" '$(Laerdal_Source_Branch)' == '' ">$(BUILD_SOURCEBRANCH)</Laerdal_Source_Branch>
<Laerdal_Repository_Path Condition=" '$(Laerdal_Repository_Path)' == '' ">$(BUILD_REPOSITORY_NAME)</Laerdal_Repository_Path>

<Laerdal_Should_Tag_And_Release Condition=" '$(Laerdal_Should_Tag_And_Release)' == '' and ( '$(Is_Core_Branch)' == 'true' ) ">True</Laerdal_Should_Tag_And_Release>
<Laerdal_Should_Generate_and_Upload_Sbom Condition=" '$(Laerdal_Should_Generate_and_Upload_Sbom)' == '' and ( '$(Is_Core_Branch)' == 'true' or '$(Is_Pull_Request)' == 'true' ) ">True</Laerdal_Should_Generate_and_Upload_Sbom>
<Laerdal_Should_Tag_And_Release Condition=" '$(Laerdal_Should_Tag_And_Release)' == '' and ( '$(Is_Core_Branch)' == 'true' ) ">True</Laerdal_Should_Tag_And_Release>
<Laerdal_Should_Generate_and_Upload_Sbom Condition=" '$(Laerdal_Should_Generate_and_Upload_Sbom)' == '' and ( '$(Is_Core_Branch)' == 'true' or '$(Is_Pull_Request)' == 'true' ) ">True</Laerdal_Should_Generate_and_Upload_Sbom>

<Laerdal_McuMgr_ProjectFile>$([System.IO.Path]::Combine($(Laerdal_RootDirectory_Folderpath), `Laerdal.McuMgr`, `Laerdal.McuMgr.csproj`))</Laerdal_McuMgr_ProjectFile>
<Laerdal_McuMgrBindings_ProjectFile_iOS>$([System.IO.Path]::Combine($(Laerdal_RootDirectory_Folderpath), `Laerdal.McuMgr.Bindings.iOS`, `Laerdal.McuMgr.Bindings.iOS.csproj`))</Laerdal_McuMgrBindings_ProjectFile_iOS>
Expand Down Expand Up @@ -342,21 +341,21 @@

<!-- notice that we intentionally use $(Laerdal_Version_Assembly) instead of $(Laerdal_Version_Full) -->
<!-- because cyclonedx inherently ear-tags sboms with the former rather than the later -->
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --project-version &quot;$(Laerdal_Version_Assembly)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --output-directory-path &quot;$(PackageOutputPath)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --sbom-signing-key-file-path &quot;$(Laerdal_Dependency_Tracker_Private_Signing_Key_File_Path)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --project-version &quot;$(Laerdal_Version_Assembly)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --output-directory-path &quot;$(PackageOutputPath)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --sbom-signing-key-file-path &quot;$(Laerdal_Dependency_Tracker_Private_Signing_Key_File_Path)&quot;</_Laerdal_Sbom_Script_Parameters>

<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --dependency-tracker-url &quot;$(Laerdal_Dependency_Tracker_Server_Url)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --dependency-tracker-api-key-file-path &quot;$(Laerdal_Dependency_Tracker_Api_Key_File_Path)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --dependency-tracker-url &quot;$(Laerdal_Dependency_Tracker_Server_Url)&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --dependency-tracker-api-key-file-path &quot;$(Laerdal_Dependency_Tracker_Api_Key_File_Path)&quot;</_Laerdal_Sbom_Script_Parameters>

<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --csproj-classifier &quot;Library&quot;</_Laerdal_Sbom_Script_Parameters>
<_Laerdal_Sbom_Script_Parameters>$(_Laerdal_Sbom_Script_Parameters) --csproj-classifier &quot;Library&quot;</_Laerdal_Sbom_Script_Parameters>
</PropertyGroup>

<!-- https://docs.dependencytrack.org/usage/cicd/#large-payloads also notice that we are forced to target -->
<!-- /api/api/v1/bom instead of /api/v1/bom due to an inherent misconfiguration of laerdal's dependency-track server -->
<Message Importance="High" Text="** Generating, Singing and Uploading SBOMs:"/>

<Exec Command=" bash Laerdal.GenerateSignAndUploadSbom.sh $(_Laerdal_Sbom_Script_Parameters) --csproj-file-path &quot;$(Laerdal_McuMgr_ProjectFile)&quot; --project-name &quot;$(_Laerdal_McuMgr_ProjectFile_Name)&quot; --output-sbom-file-name &quot;sbom.laerdal.mcumgr.xml&quot; " ConsoleToMSBuild="true" WorkingDirectory="$(Laerdal_Script_FolderPath)"/>
<Exec Command=" bash Laerdal.GenerateSignAndUploadSbom.sh $(_Laerdal_Sbom_Script_Parameters) --csproj-file-path &quot;$(Laerdal_McuMgr_ProjectFile)&quot; --project-name &quot;$(_Laerdal_McuMgr_ProjectFile_Name)&quot; --output-sbom-file-name &quot;sbom.laerdal.mcumgr.xml&quot; --parent-project-name &quot;[Group::Laerdal.McuMgr]&quot; " ConsoleToMSBuild="true" WorkingDirectory="$(Laerdal_Script_FolderPath)"/>
<Exec Command=" bash Laerdal.GenerateSignAndUploadSbom.sh $(_Laerdal_Sbom_Script_Parameters) --csproj-file-path &quot;$(Laerdal_McuMgrBindings_ProjectFile_iOS)&quot; --project-name &quot;$(_Laerdal_McuMgr_ProjectFile_iOS_Name)&quot; --output-sbom-file-name &quot;sbom.laerdal.mcumgr.ios.xml&quot; --parent-project-name &quot;$(_Laerdal_McuMgr_ProjectFile_Name)&quot; --parent-project-version &quot;$(Laerdal_Version_Assembly)&quot; " ConsoleToMSBuild="true" WorkingDirectory="$(Laerdal_Script_FolderPath)"/>
<Exec Command=" bash Laerdal.GenerateSignAndUploadSbom.sh $(_Laerdal_Sbom_Script_Parameters) --csproj-file-path &quot;$(Laerdal_McuMgrBindings_ProjectFile_Android)&quot; --project-name &quot;$(_Laerdal_McuMgr_ProjectFile_Android_Name)&quot; --output-sbom-file-name &quot;sbom.laerdal.mcumgr.android.xml&quot; --parent-project-name &quot;$(_Laerdal_McuMgr_ProjectFile_Name)&quot; --parent-project-version &quot;$(Laerdal_Version_Assembly)&quot; " ConsoleToMSBuild="true" WorkingDirectory="$(Laerdal_Script_FolderPath)"/>
<Exec Command=" bash Laerdal.GenerateSignAndUploadSbom.sh $(_Laerdal_Sbom_Script_Parameters) --csproj-file-path &quot;$(Laerdal_McuMgrBindings_ProjectFile_MacCatalyst)&quot; --project-name &quot;$(_Laerdal_McuMgr_ProjectFile_MacCatalyst_Name)&quot; --output-sbom-file-name &quot;sbom.laerdal.mcumgr.maccatalyst.xml&quot; --parent-project-name &quot;$(_Laerdal_McuMgr_ProjectFile_Name)&quot; --parent-project-version &quot;$(Laerdal_Version_Assembly)&quot; " ConsoleToMSBuild="true" WorkingDirectory="$(Laerdal_Script_FolderPath)"/>
Expand Down
10 changes: 5 additions & 5 deletions Laerdal.Scripts/Laerdal.GenerateSignAndUploadSbom.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@ function parse_arguments() {
# if [[ -z ${parent_project_version} ]]; then this is optional
# ...

if [[ -n ${parent_project_name} && -z ${parent_project_version} ]]; then
echo "Specifying --parent-project-version is mandatory when --parent-project-name has been used!"
usage
exit 1
fi
# if [[ -n ${parent_project_name} && -z ${parent_project_version} ]]; then # nah better not to enforce this
# echo "Specifying --parent-project-version is mandatory when --parent-project-name has been used!"
# usage
# exit 1
# fi

if [[ -z ${csproj_file_path} ]]; then
echo "Specifying --csproj-file-path is mandatory!"
Expand Down

0 comments on commit eaa9711

Please sign in to comment.