4343RELEASE_DIR=" ${REPO_ROOT} /build/release/${VERSION} "
4444ZIP_FILE=" ${RELEASE_DIR} /phpMyFAQ-${VERSION} .zip"
4545TAR_FILE=" ${RELEASE_DIR} /phpMyFAQ-${VERSION} .tar.gz"
46+ SBOM_PHP_FILE=" ${RELEASE_DIR} /phpMyFAQ-${VERSION} .php.sbom.json"
47+ SBOM_JS_FILE=" ${RELEASE_DIR} /phpMyFAQ-${VERSION} .js.sbom.json"
48+ SBOM_COMBINED_FILE=" ${RELEASE_DIR} /phpMyFAQ-${VERSION} .sbom.json"
4649SHA256_FILE=" ${RELEASE_DIR} /SHA256SUMS"
4750SHA256_ASC_FILE=" ${RELEASE_DIR} /SHA256SUMS.asc"
4851ZIP_ASC_FILE=" ${ZIP_FILE} .asc"
4952TAR_ASC_FILE=" ${TAR_FILE} .asc"
53+ SBOM_PHP_ASC_FILE=" ${SBOM_PHP_FILE} .asc"
54+ SBOM_JS_ASC_FILE=" ${SBOM_JS_FILE} .asc"
55+ SBOM_COMBINED_ASC_FILE=" ${SBOM_COMBINED_FILE} .asc"
5056ARTIFACT_MANIFEST=" ${RELEASE_DIR} /ARTIFACTS.txt"
5157
5258log () {
@@ -83,6 +89,9 @@ check_prerequisites() {
8389 [ -d " ${RELEASE_DIR} " ] || fail " Release directory ${RELEASE_DIR} does not exist"
8490 [ -f " ${ZIP_FILE} " ] || fail " Missing artifact ${ZIP_FILE} "
8591 [ -f " ${TAR_FILE} " ] || fail " Missing artifact ${TAR_FILE} "
92+ [ -f " ${SBOM_PHP_FILE} " ] || fail " Missing SBOM ${SBOM_PHP_FILE} "
93+ [ -f " ${SBOM_JS_FILE} " ] || fail " Missing SBOM ${SBOM_JS_FILE} "
94+ [ -f " ${SBOM_COMBINED_FILE} " ] || fail " Missing SBOM ${SBOM_COMBINED_FILE} "
8695
8796 if [ " ${SKIP_GPG:- 0} " != " 1" ]; then
8897 require_command gpg
@@ -97,6 +106,9 @@ generate_checksums() {
97106 cd " ${RELEASE_DIR} "
98107 ${SHA256_CMD} " $( basename " ${ZIP_FILE} " ) " > " ${SHA256_FILE} "
99108 ${SHA256_CMD} " $( basename " ${TAR_FILE} " ) " >> " ${SHA256_FILE} "
109+ ${SHA256_CMD} " $( basename " ${SBOM_PHP_FILE} " ) " >> " ${SHA256_FILE} "
110+ ${SHA256_CMD} " $( basename " ${SBOM_JS_FILE} " ) " >> " ${SHA256_FILE} "
111+ ${SHA256_CMD} " $( basename " ${SBOM_COMBINED_FILE} " ) " >> " ${SHA256_FILE} "
100112 )
101113}
102114
@@ -125,7 +137,13 @@ sign_artifacts() {
125137 fi
126138
127139 log " Signing SHA256SUMS and release artifacts"
128- rm -f " ${SHA256_ASC_FILE} " " ${ZIP_ASC_FILE} " " ${TAR_ASC_FILE} "
140+ rm -f \
141+ " ${SHA256_ASC_FILE} " \
142+ " ${ZIP_ASC_FILE} " \
143+ " ${TAR_ASC_FILE} " \
144+ " ${SBOM_PHP_ASC_FILE} " \
145+ " ${SBOM_JS_ASC_FILE} " \
146+ " ${SBOM_COMBINED_ASC_FILE} "
129147
130148 GPG_ARGS=" $( gpg_base_args) "
131149 GPG_USER_ARGS=" $( gpg_local_user_args) "
@@ -136,6 +154,12 @@ sign_artifacts() {
136154 gpg ${GPG_ARGS} ${GPG_USER_ARGS} --armor --detach-sign --output " ${ZIP_ASC_FILE} " " ${ZIP_FILE} "
137155 # shellcheck disable=SC2086
138156 gpg ${GPG_ARGS} ${GPG_USER_ARGS} --armor --detach-sign --output " ${TAR_ASC_FILE} " " ${TAR_FILE} "
157+ # shellcheck disable=SC2086
158+ gpg ${GPG_ARGS} ${GPG_USER_ARGS} --armor --detach-sign --output " ${SBOM_PHP_ASC_FILE} " " ${SBOM_PHP_FILE} "
159+ # shellcheck disable=SC2086
160+ gpg ${GPG_ARGS} ${GPG_USER_ARGS} --armor --detach-sign --output " ${SBOM_JS_ASC_FILE} " " ${SBOM_JS_FILE} "
161+ # shellcheck disable=SC2086
162+ gpg ${GPG_ARGS} ${GPG_USER_ARGS} --armor --detach-sign --output " ${SBOM_COMBINED_ASC_FILE} " " ${SBOM_COMBINED_FILE} "
139163}
140164
141165verify_outputs () {
@@ -157,6 +181,9 @@ verify_outputs() {
157181 gpg --verify " ${SHA256_ASC_FILE} " " ${SHA256_FILE} "
158182 gpg --verify " ${ZIP_ASC_FILE} " " ${ZIP_FILE} "
159183 gpg --verify " ${TAR_ASC_FILE} " " ${TAR_FILE} "
184+ gpg --verify " ${SBOM_PHP_ASC_FILE} " " ${SBOM_PHP_FILE} "
185+ gpg --verify " ${SBOM_JS_ASC_FILE} " " ${SBOM_JS_FILE} "
186+ gpg --verify " ${SBOM_COMBINED_ASC_FILE} " " ${SBOM_COMBINED_FILE} "
160187}
161188
162189update_manifest () {
@@ -174,6 +201,9 @@ Artifacts:
174201- $( basename " ${ZIP_FILE} " )
175202- $( basename " ${TAR_FILE} " )
176203- $( basename " ${SHA256_FILE} " )
204+ - $( basename " ${SBOM_PHP_FILE} " )
205+ - $( basename " ${SBOM_JS_FILE} " )
206+ - $( basename " ${SBOM_COMBINED_FILE} " )
177207EOF
178208
179209 if [ -f " ${RELEASE_DIR} /hashes-${VERSION} .json" ]; then
189219- $( basename " ${SHA256_ASC_FILE} " )
190220- $( basename " ${ZIP_ASC_FILE} " )
191221- $( basename " ${TAR_ASC_FILE} " )
222+ - $( basename " ${SBOM_PHP_ASC_FILE} " )
223+ - $( basename " ${SBOM_JS_ASC_FILE} " )
224+ - $( basename " ${SBOM_COMBINED_ASC_FILE} " )
192225EOF
193226 fi
194227}
@@ -204,7 +237,13 @@ main() {
204237 printf ' - %s\n' " ${SHA256_FILE} "
205238
206239 if [ " ${SKIP_GPG:- 0} " != " 1" ]; then
207- printf ' - %s\n' " ${SHA256_ASC_FILE} " " ${ZIP_ASC_FILE} " " ${TAR_ASC_FILE} "
240+ printf ' - %s\n' \
241+ " ${SHA256_ASC_FILE} " \
242+ " ${ZIP_ASC_FILE} " \
243+ " ${TAR_ASC_FILE} " \
244+ " ${SBOM_PHP_ASC_FILE} " \
245+ " ${SBOM_JS_ASC_FILE} " \
246+ " ${SBOM_COMBINED_ASC_FILE} "
208247 fi
209248}
210249
0 commit comments