From 2e7d4d74ac350732b4a2b982c536dfa1bf04861a Mon Sep 17 00:00:00 2001 From: Lesia Chaban Date: Mon, 17 Feb 2025 16:33:13 +0100 Subject: [PATCH 1/2] Update sbom_generation.yaml --- sbom_generation.yaml | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/sbom_generation.yaml b/sbom_generation.yaml index b533016311..7ba3d260df 100644 --- a/sbom_generation.yaml +++ b/sbom_generation.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. # This OCI DevOps build specification file [1] generates a Software Bill of Materials (SBOM) of the repository. # The file is needed to run checks for third-party vulnerabilities and business approval according to Oracle’s GitHub policies. @@ -8,17 +8,34 @@ version: 0.1 component: build timeoutInSeconds: 1000 shell: bash - +env: + variables: + PYTHON_CMD: "python3" + CDXGEN_DEBUG_MODE: "debug" steps: - type: Command - name: "Install cyclonedx_py module" + name: "Download the version 10.10.0 of cdxgen globally" + command: | + npm install -g @cyclonedx/cdxgen@10.10.0 + - type: Command + name: "Workaround to let cdxgen run on nodejs 16" command: | - pip install cyclonedx-bom + # cdxgen relies on a fourth-party dependency that cannot be executed in a Node.js environment running version 16 + # (as installed on the build runner instance) + # This is a workaround to ensure cdxgen functions correctly, even in an older Node.js environment. + cd /node/node-v16.14.2-linux-x64/lib/node_modules/@cyclonedx/cdxgen && \ + npm install cheerio@v1.0.0-rc.12 - type: Command - name: "Run Python cyclonedx_py module" + name: "Generate SBOM for Python " command: | - # For more details, visit https://github.com/CycloneDX/cyclonedx-python/blob/main/README.md - python3 -m cyclonedx_py -r -pb --format json -o artifactSBOM.json --schema-version 1.4 + # Search the test or dev requirements files, so that test and dev py packages can be excluded in the generated SBOM + files=$(find . -type f -regex ".*\(test.*requirements\|requirements.*test\|dev.*requirements\|requirements.*dev\).*\.txt") && \ + if [ -n "$files" ]; then \ + cdxgen -t python -o artifactSBOM.json --spec-version 1.4 \ + --exclude "*{requirements,dev,test}*{requirements,dev,test}*.txt" --project-name "$(basename $OCI_PRIMARY_SOURCE_URL)" --no-recurse + else \ + cdxgen -t python -o artifactSBOM.json --spec-version 1.4 --project-name "$(basename $OCI_PRIMARY_SOURCE_URL)" --no-recurse + fi \ outputArtifacts: - name: artifactSBOM type: BINARY From 2c9a8ed343fc5ceab43d390eb3ec9c48cc2d180f Mon Sep 17 00:00:00 2001 From: Lesia Chaban Date: Fri, 21 Feb 2025 17:26:51 +0200 Subject: [PATCH 2/2] Delete sbom_generation.yaml --- sbom_generation.yaml | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 sbom_generation.yaml diff --git a/sbom_generation.yaml b/sbom_generation.yaml deleted file mode 100644 index 7ba3d260df..0000000000 --- a/sbom_generation.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. - -# This OCI DevOps build specification file [1] generates a Software Bill of Materials (SBOM) of the repository. -# The file is needed to run checks for third-party vulnerabilities and business approval according to Oracle’s GitHub policies. -# [1] https://docs.oracle.com/en-us/iaas/Content/devops/using/build_specs.htm - -version: 0.1 -component: build -timeoutInSeconds: 1000 -shell: bash -env: - variables: - PYTHON_CMD: "python3" - CDXGEN_DEBUG_MODE: "debug" -steps: - - type: Command - name: "Download the version 10.10.0 of cdxgen globally" - command: | - npm install -g @cyclonedx/cdxgen@10.10.0 - - type: Command - name: "Workaround to let cdxgen run on nodejs 16" - command: | - # cdxgen relies on a fourth-party dependency that cannot be executed in a Node.js environment running version 16 - # (as installed on the build runner instance) - # This is a workaround to ensure cdxgen functions correctly, even in an older Node.js environment. - cd /node/node-v16.14.2-linux-x64/lib/node_modules/@cyclonedx/cdxgen && \ - npm install cheerio@v1.0.0-rc.12 - - type: Command - name: "Generate SBOM for Python " - command: | - # Search the test or dev requirements files, so that test and dev py packages can be excluded in the generated SBOM - files=$(find . -type f -regex ".*\(test.*requirements\|requirements.*test\|dev.*requirements\|requirements.*dev\).*\.txt") && \ - if [ -n "$files" ]; then \ - cdxgen -t python -o artifactSBOM.json --spec-version 1.4 \ - --exclude "*{requirements,dev,test}*{requirements,dev,test}*.txt" --project-name "$(basename $OCI_PRIMARY_SOURCE_URL)" --no-recurse - else \ - cdxgen -t python -o artifactSBOM.json --spec-version 1.4 --project-name "$(basename $OCI_PRIMARY_SOURCE_URL)" --no-recurse - fi \ -outputArtifacts: - - name: artifactSBOM - type: BINARY - location: ${OCI_PRIMARY_SOURCE_DIR}/artifactSBOM.json