diff --git a/.github/actions/node-build/action.yml b/.github/actions/node-build/action.yml index 72dc342..ba0d24c 100644 --- a/.github/actions/node-build/action.yml +++ b/.github/actions/node-build/action.yml @@ -9,10 +9,10 @@ inputs: env_path: description: 'Path to .env file' required: true - is_dev: - description: 'Is dev build' + create_sbom: + description: 'Create SBOM' required: false - default: "false" + default: "true" runs: using: composite @@ -26,9 +26,13 @@ runs: working-directory: ${{ inputs.repository_dir }} env: ENV_FILE_PATH: ${{ inputs.env_path }} - IS_DEV: ${{ inputs.is_dev }} + CREATE_SBOM: ${{ inputs.create_sbom }} run: | export $(grep -v '^[#|SIGNING|PASS_CORE_POLICY]' $ENV_FILE_PATH | xargs -d '\n') pnpm install --frozen-lockfile pnpm run build + if [ "CREATE_SBOM" == "true" ]; then + rm -f *-cyclonedx-sbom.json + pnpm run create_sbom + fi pnpm run build:docker diff --git a/.github/workflows/pass-complete-release.yml b/.github/workflows/pass-complete-release.yml index 87ad357..f1b2113 100644 --- a/.github/workflows/pass-complete-release.yml +++ b/.github/workflows/pass-complete-release.yml @@ -160,8 +160,24 @@ jobs: gh release create "$RELEASE" --repo=eclipse-pass/main --generate-notes gh release delete "$RELEASE" --repo=eclipse-pass/pass-core || true gh release create "$RELEASE" --repo=eclipse-pass/pass-core --generate-notes + cp combined/pass-core/pass-core-main/target/classes/META-INF/sbom/application.cdx.json pass-core-main-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-core pass-core-main-$RELEASE-cyclonedx-sbom.json gh release delete "$RELEASE" --repo=eclipse-pass/pass-support || true gh release create "$RELEASE" --repo=eclipse-pass/pass-support --generate-notes + cp combined/pass-support/pass-data-client/target/classes/META-INF/sbom/application.cdx.json pass-data-client-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support pass-data-client-$RELEASE-cyclonedx-sbom.json + cp combined/pass-support/pass-deposit-services/deposit-core/target/classes/META-INF/sbom/application.cdx.json deposit-core-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support deposit-core-$RELEASE-cyclonedx-sbom.json + cp combined/pass-support/pass-grant-loader/target/classes/META-INF/sbom/application.cdx.json pass-grant-loader-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support pass-grant-loader-$RELEASE-cyclonedx-sbom.json + cp combined/pass-support/pass-journal-loader/pass-journal-loader-nih/target/classes/META-INF/sbom/application.cdx.json pass-journal-loader-nih-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support pass-journal-loader-nih-$RELEASE-cyclonedx-sbom.json + cp combined/pass-support/pass-nihms-loader/nihms-data-harvest/target/classes/META-INF/sbom/application.cdx.json nihms-data-harvest-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support nihms-data-harvest-$RELEASE-cyclonedx-sbom.json + cp combined/pass-support/pass-nihms-loader/nihms-data-transform-load/target/classes/META-INF/sbom/application.cdx.json nihms-data-transform-load-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support nihms-data-transform-load-$RELEASE-cyclonedx-sbom.json + cp combined/pass-support/pass-notification-service/target/classes/META-INF/sbom/application.cdx.json pass-notification-service-$RELEASE-cyclonedx-sbom.json + gh release upload "$RELEASE" --repo=eclipse-pass/pass-support pass-notification-service-$RELEASE-cyclonedx-sbom.json env: GITHUB_TOKEN: ${{ secrets.JAVA_RELEASE_PAT }} @@ -183,7 +199,9 @@ jobs: - name: Push Release Docker images to GHCR ~ pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} - run: docker push ghcr.io/eclipse-pass/pass-ui:$RELEASE + run: | + docker push ghcr.io/eclipse-pass/pass-ui:$RELEASE + cp combined/pass-ui/pass-ui-$RELEASE-cyclonedx-sbom.json pass-ui-$RELEASE-cyclonedx-sbom.json - name: Set Snapshot/commit ~ pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} @@ -200,7 +218,6 @@ jobs: with: repository_dir: combined/pass-ui env_path: ../pass-docker/.env - is_dev: "true" - name: Push Snapshot Docker images to GHCR ~ pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} @@ -212,7 +229,9 @@ jobs: - name: Create GitHub main release ~ pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} - run: gh release create "$RELEASE" --repo=eclipse-pass/pass-ui --generate-notes + run: | + gh release create "$RELEASE" --repo=eclipse-pass/pass-ui --generate-notes + gh release upload "$RELEASE" --repo=eclipse-pass/pass-ui pass-ui-$RELEASE-cyclonedx-sbom.json env: GITHUB_TOKEN: ${{ secrets.JAVA_RELEASE_PAT }} diff --git a/pom.xml b/pom.xml index f367f04..cf73dd6 100644 --- a/pom.xml +++ b/pom.xml @@ -298,6 +298,7 @@ ${project.build.outputDirectory}/META-INF/sbom json application.cdx + cyclonedx-sbom