7676 npx @cyclonedx/cyclonedx-npm --ignore-npm-errors --output-format XML --output-file './bom.nextcloud.npm.xml'
7777
7878
79+ #
80+ # Theme
81+ #
82+
83+ # SBOM for NPM (install and generate)
84+
85+ - name : Set up node with version from package.json's engines
86+ uses : actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
87+ with :
88+ node-version-file : " themes/nc-ionos-theme/IONOS/package.json"
89+
90+ - name : " Install dependencies (theme - npm)"
91+ run : |
92+ cd themes/nc-ionos-theme/IONOS
93+ npm ci
94+
95+ - name : Generate SBOM (theme - npm)
96+ #
97+ # See previous step's comment on these options
98+ #
99+ run : |
100+ cd themes/nc-ionos-theme/IONOS
101+ npx @cyclonedx/cyclonedx-npm --ignore-npm-errors --output-format XML --output-file '../../../bom.hidrive-next-theme.xml'
102+
103+
79104 # Apps
80105 #
81106 # Apps reference custom-npms via relative paths and can therefor not
@@ -156,7 +181,158 @@ jobs:
156181 cd apps-custom/nc_theming
157182 composer CycloneDX:make-sbom --output-file=../../bom.app-theming.xml
158183
184+ #
185+ # App: viewer
186+ #
187+
188+ # SBOM for composer (generate)
189+
190+ - name : Generate SBOM (apps:viewer - composer)
191+ # https://packagist.org/packages/cyclonedx/cyclonedx-php-composer
192+ run : |
193+ cd apps-external/viewer
194+ composer CycloneDX:make-sbom --output-file=../../bom.app-viewer.composer.xml
195+
196+ # SBOM for NPM (install and generate)
197+
198+ - name : Set up node with version from package.json's engines
199+ uses : actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
200+ with :
201+ node-version-file : " apps-external/viewer/package.json"
159202
203+ - name : " Install dependencies (apps:viewer - npm)"
204+ run : |
205+ cd apps-external/viewer
206+ npm ci
207+
208+ - name : Generate SBOM (apps:viewer - npm)
209+ #
210+ # See previous step's comment on these options
211+ #
212+ run : |
213+ cd apps-external/viewer
214+ npx @cyclonedx/cyclonedx-npm --ignore-npm-errors --output-format XML --output-file '../../bom.app-viewer.npm.xml'
215+
216+
217+ #
218+ # App: user_oidc
219+ #
220+
221+ # SBOM for composer (generate)
222+
223+ - name : Generate SBOM (apps:user_oidc - composer)
224+ # https://packagist.org/packages/cyclonedx/cyclonedx-php-composer
225+ run : |
226+ cd apps-external/user_oidc
227+ composer CycloneDX:make-sbom --output-file=../../bom.app-user_oidc.composer.xml
228+
229+ # SBOM for NPM (install and generate)
230+
231+ - name : Set up node with version from package.json's engines
232+ uses : actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
233+ with :
234+ node-version-file : " apps-external/user_oidc/package.json"
235+
236+ - name : " Install dependencies (apps:user_oidc - npm)"
237+ run : |
238+ cd apps-external/user_oidc
239+ npm ci
240+
241+ - name : Generate SBOM (apps:user_oidc - npm)
242+ #
243+ # See previous step's comment on these options
244+ #
245+ run : |
246+ cd apps-external/user_oidc
247+ npx @cyclonedx/cyclonedx-npm --ignore-npm-errors --output-format XML --output-file '../../bom.app-user_oidc.npm.xml'
248+
249+ #
250+ # App: groupquota
251+ #
252+
253+ # SBOM for composer (generate)
254+
255+ - name : Generate SBOM (apps:groupquota - composer)
256+ # https://packagist.org/packages/cyclonedx/cyclonedx-php-composer
257+ run : |
258+ cd apps-external/groupquota
259+ composer CycloneDX:make-sbom --output-file=../../bom.app-groupquota.xml
260+
261+ #
262+ # App: richdocuments
263+ #
264+
265+ # SBOM for composer (generate)
266+
267+ - name : Generate SBOM (apps:richdocuments - composer)
268+ # https://packagist.org/packages/cyclonedx/cyclonedx-php-composer
269+ run : |
270+ cd apps-external/richdocuments
271+ composer CycloneDX:make-sbom --output-file=../../bom.app-richdocuments.composer.xml
272+
273+ # SBOM for NPM (install and generate)
274+
275+ - name : Set up node with version from package.json's engines
276+ uses : actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
277+ with :
278+ node-version-file : " apps-external/richdocuments/package.json"
279+
280+ - name : " Install dependencies (apps:richdocuments - npm)"
281+ run : |
282+ cd apps-external/richdocuments
283+ npm ci
284+
285+ - name : Generate SBOM (apps:richdocuments - npm)
286+ #
287+ # See previous step's comment on these options
288+ #
289+ run : |
290+ cd apps-external/richdocuments
291+ npx @cyclonedx/cyclonedx-npm --ignore-npm-errors --output-format XML --output-file '../../bom.app-richdocuments.npm.xml'
292+
293+ #
294+ # App: files_downloadlimit
295+ #
296+
297+ # SBOM for composer (generate)
298+
299+ - name : Generate SBOM (apps:files_downloadlimit - composer)
300+ # https://packagist.org/packages/cyclonedx/cyclonedx-php-composer
301+ run : |
302+ cd apps-external/files_downloadlimit
303+ composer CycloneDX:make-sbom --output-file=../../bom.app-files_downloadlimit.composer.xml
304+
305+ # SBOM for NPM (install and generate)
306+
307+ - name : Set up node with version from package.json's engines
308+ uses : actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
309+ with :
310+ node-version-file : " apps-external/files_downloadlimit/package.json"
311+
312+ - name : " Install dependencies (apps:files_downloadlimit - npm)"
313+ run : |
314+ cd apps-external/files_downloadlimit
315+ npm ci
316+
317+ - name : Generate SBOM (apps:files_downloadlimit - npm)
318+ #
319+ # See previous step's comment on these options
320+ #
321+ run : |
322+ cd apps-external/files_downloadlimit
323+ npx @cyclonedx/cyclonedx-npm --ignore-npm-errors --output-format XML --output-file '../../bom.app-files_downloadlimit.npm.xml'
324+
325+ #
326+ # App: serverinfo
327+ #
328+
329+ # SBOM for composer (generate)
330+
331+ - name : Generate SBOM (apps:serverinfo - composer)
332+ # https://packagist.org/packages/cyclonedx/cyclonedx-php-composer
333+ run : |
334+ cd apps-external/serverinfo
335+ composer CycloneDX:make-sbom --output-file=../../bom.app-serverinfo.xml
160336
161337
162338 # Pass BOMs to next Job
@@ -167,6 +343,7 @@ jobs:
167343 name : bom-partials
168344 path : |
169345 bom.nextcloud.*.xml
346+ bom.hidrive-next-theme.*.xml
170347 bom.app-*.xml
171348
172349 merge-sboms :
@@ -201,6 +378,10 @@ jobs:
201378
202379 merge_bom "nextcloud"
203380 merge_bom "app-simplesettings"
381+ merge_bom "app-viewer"
382+ merge_bom "app-user_oidc"
383+ merge_bom "app-richdocuments"
384+ merge_bom "app-files_downloadlimit"
204385
205386 - name : Show BOMs
206387 run : |
@@ -214,10 +395,17 @@ jobs:
214395 name : final-boms
215396 path : |
216397 bom.nextcloud.xml
398+ bom.hidrive-next-theme.xml
217399 bom.app-simplesettings.xml
218400 bom.app-googleanalytics.xml
219401 bom.app-ionos-processes.xml
220402 bom.app-theming.xml
403+ bom.app-viewer.xml
404+ bom.app-user_oidc.xml
405+ bom.app-groupquota.xml
406+ bom.app-richdocuments.xml
407+ bom.app-files_downloadlimit.xml
408+ bom.app-serverinfo.xml
221409
222410 upload-sboms :
223411 needs : merge-sboms
@@ -252,8 +440,15 @@ jobs:
252440 }
253441
254442 upload_bom "bom.nextcloud.xml" "${{ vars.DT_OBJECT_NEXTCLOUD }}" \
443+ && upload_bom "bom.hidrive-next-theme.xml" "${{ vars.DT_OBJECT_THEME }}" \
255444 && upload_bom "bom.app-simplesettings.xml" "${{ vars.DT_OBJECT_APP_SIMPLESETTINGS }}" \
256445 && upload_bom "bom.app-googleanalytics.xml" "${{ vars.DT_OBJECT_APP_GOOGLE_ANALYTICS }}" \
257446 && upload_bom "bom.app-ionos-processes.xml" "${{ vars.DT_OBJECT_APP_IONOS_PROCESSES }}" \
258447 && upload_bom "bom.app-theming.xml" "${{ vars.DT_OBJECT_APP_THEMING }}" \
448+ && upload_bom "bom.app-viewer.xml" "${{ vars.DT_OBJECT_APP_VIEWER }}" \
449+ && upload_bom "bom.app-user_oidc.xml" "${{ vars.DT_OBJECT_APP_USER_OIDC }}" \
450+ && upload_bom "bom.app-groupquota.xml" "${{ vars.DT_OBJECT_APP_GROUPQUOTA }}" \
451+ && upload_bom "bom.app-richdocuments.xml" "${{ vars.DT_OBJECT_APP_RICHDOCUMENTS }}" \
452+ && upload_bom "bom.app-files_downloadlimit.xml" "${{ vars.DT_OBJECT_APP_FILES_DOWNLOADLIMIT }}" \
453+ && upload_bom "bom.app-serverinfo.xml" "${{ vars.DT_OBJECT_APP_SERVERINFO }}" \
259454 || exit 1
0 commit comments