Skip to content

Commit d5d1e74

Browse files
authored
COH-31702 - Add custom SBOM generation file sbom_generation.yaml (#216)
1 parent 738e3ed commit d5d1e74

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

sbom_generation.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
2+
3+
# This OCI DevOps build specification file [1] generates a Software Bill of Materials (SBOM) of the repository.
4+
# The file is needed to run checks for third-party vulnerabilities and business approval according to Oracle’s GitHub policies.
5+
# [1] https://docs.oracle.com/en-us/iaas/Content/devops/using/build_specs.htm
6+
7+
version: 0.1
8+
component: build
9+
timeoutInSeconds: 1000
10+
shell: bash
11+
env:
12+
variables:
13+
PYTHON_CMD: "python3"
14+
CDXGEN_DEBUG_MODE: "debug"
15+
steps:
16+
- type: Command
17+
name: "Download the version 10.10.0 of cdxgen globally"
18+
command: |
19+
npm install -g @cyclonedx/[email protected]
20+
- type: Command
21+
name: "Workaround to let cdxgen run on nodejs 16"
22+
command: |
23+
# cdxgen relies on a fourth-party dependency that cannot be executed in a Node.js environment running version 16
24+
# (as installed on the build runner instance)
25+
# This is a workaround to ensure cdxgen functions correctly, even in an older Node.js environment.
26+
cd /node/node-v16.14.2-linux-x64/lib/node_modules/@cyclonedx/cdxgen && \
27+
npm install [email protected]
28+
- type: Command
29+
name: "Generate SBOM for Python "
30+
command: |
31+
# Search the test or dev requirements files, so that test and dev py packages can be excluded in the generated SBOM
32+
files=$(find . -type f -regex ".*\(test.*requirements\|requirements.*test\|dev.*requirements\|requirements.*dev\).*\.txt") && \
33+
if [ -n "$files" ]; then \
34+
cdxgen -t python -o artifactSBOM.json --spec-version 1.4 \
35+
--exclude "*{requirements,dev,test}*{requirements,dev,test}*.txt" --project-name "$(basename $OCI_PRIMARY_SOURCE_URL)" --no-recurse
36+
else \
37+
cdxgen -t python -o artifactSBOM.json --spec-version 1.4 --project-name "$(basename $OCI_PRIMARY_SOURCE_URL)" --no-recurse
38+
fi \
39+
outputArtifacts:
40+
- name: artifactSBOM
41+
type: BINARY
42+
location: ${OCI_PRIMARY_SOURCE_DIR}/artifactSBOM.json

0 commit comments

Comments
 (0)