Skip to content

Commit 5ac9746

Browse files
committed
Merge remote-tracking branch 'origin/master' into 1.7-dev
2 parents 77c2d0e + a43e6f7 commit 5ac9746

File tree

8 files changed

+660
-7
lines changed

8 files changed

+660
-7
lines changed

.github/workflows/build_docs.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,21 @@ jobs:
5959
name: JSON-Schema-documentation
6060
path: docgen/json/docs
6161
if-no-files-found: error
62+
docs_proto:
63+
runs-on: ubuntu-latest
64+
defaults:
65+
run:
66+
working-directory: docgen/proto
67+
steps:
68+
- name: Checkout
69+
# see https://github.com/actions/checkout
70+
uses: actions/checkout@v4
71+
- name: Generate Schema documentation
72+
run: ./gen.sh
73+
- name: Archive Schema documentation
74+
# https://github.com/actions/upload-artifact
75+
uses: actions/upload-artifact@v4
76+
with:
77+
name: PROTO-Schema-documentation
78+
path: docgen/proto/docs
79+
if-no-files-found: error

docgen/json/gen.sh

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ DOCS_PATH="$THIS_PATH/docs"
77
TEMPLATES_PATH="$THIS_PATH/templates"
88

99
rm -f -R "$DOCS_PATH"
10-
mkdir -p "$DOCS_PATH/"{1.2,1.3,1.4,1.5,1.6,1.7}
1110

1211
# Check to see if generate-schema-doc is executable and is in the path. If not, install JSON Schema for Humans.
1312
if ! [ -x "$(command -v generate-schema-doc)" ]
@@ -27,7 +26,10 @@ generate () {
2726
then
2827
SCHEMA_FILE="$STRICT_SCHEMA_FILE"
2928
fi
30-
echo "$SCHEMA_FILE"
29+
echo "SCHEMA_FILE: $SCHEMA_FILE"
30+
31+
OUT_FILE="$DOCS_PATH/$version/json/index.html"
32+
mkdir -p "$(dirname "$OUT_FILE")"
3133

3234
generate-schema-doc \
3335
--config no_link_to_reused_ref \
@@ -38,11 +40,11 @@ generate () {
3840
--config custom_template_path="$TEMPLATES_PATH/cyclonedx/base.html" \
3941
--minify \
4042
"$SCHEMA_FILE" \
41-
"$DOCS_PATH/$version/index.html"
43+
"$OUT_FILE"
4244

43-
sed -i -e "s/\${quotedTitle}/\"$title\"/g" "$DOCS_PATH/$version/index.html"
44-
sed -i -e "s/\${title}/$title/g" "$DOCS_PATH/$version/index.html"
45-
sed -i -e "s/\${version}/$version/g" "$DOCS_PATH/$version/index.html"
45+
sed -i -e "s/\${quotedTitle}/\"$title\"/g" "$OUT_FILE"
46+
sed -i -e "s/\${title}/$title/g" "$OUT_FILE"
47+
sed -i -e "s/\${version}/$version/g" "$OUT_FILE"
4648
}
4749

4850
generate 1.2

docgen/json/templates/cyclonedx/base.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@
5555
<li><a class="dropdown-item" href="/docs/1.2/xml/">v1.2 (XML)</a></li>
5656
<li><a class="dropdown-item" href="/docs/1.1/xml/">v1.1 (XML)</a></li>
5757
<li><a class="dropdown-item" href="/docs/1.0/xml/">v1.0 (XML)</a></li>
58+
<li><hr class="dropdown-divider"/></li>
59+
<li><a class="dropdown-item" href="/docs/1.6/proto/">v1.6 (Protobuf)</a></li>
60+
<li><a class="dropdown-item" href="/docs/1.5/proto/">v1.5 (Protobuf)</a></li>
61+
<li><a class="dropdown-item" href="/docs/1.4/proto/">v1.4 (Protobuf)</a></li>
62+
<li><a class="dropdown-item" href="/docs/1.3/proto/">v1.3 (Protobuf)</a></li>
5863
</ul>
5964
</li>
6065
</ul>

docgen/proto/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/docs/

docgen/proto/gen.sh

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/bin/bash
2+
set -eu
3+
4+
THIS_PATH="$(realpath "$(dirname "$0")")"
5+
SCHEMA_PATH="$(realpath "$THIS_PATH/../../schema")"
6+
DOCS_PATH="$THIS_PATH/docs"
7+
TEMPLATES_PATH="$THIS_PATH/templates"
8+
9+
PROTOC_GEN_DOC_VERSION='1.5.1'
10+
11+
# --
12+
13+
rm -f -R "$DOCS_PATH"
14+
15+
generate () {
16+
version="$1"
17+
title="CycloneDX v$version Protobuf Reference"
18+
echo "Generating: $title"
19+
20+
OUT_DIR="$DOCS_PATH/$version/proto"
21+
OUT_FILE="index.html"
22+
mkdir -p "$OUT_DIR"
23+
24+
## docs: https://github.com/pseudomuto/protoc-gen-doc
25+
docker run --rm \
26+
-v "${OUT_DIR}:/out" \
27+
-v "${SCHEMA_PATH}:/protos:ro" \
28+
-v "${TEMPLATES_PATH}:/templates:ro" \
29+
"pseudomuto/protoc-gen-doc:${PROTOC_GEN_DOC_VERSION}" \
30+
--doc_opt=/templates/html.tmpl,"$OUT_FILE" \
31+
"bom-${version}.proto"
32+
33+
# fix file permissions
34+
docker run --rm \
35+
-v "${OUT_DIR}:/out" \
36+
--entrypoint chown \
37+
"pseudomuto/protoc-gen-doc:${PROTOC_GEN_DOC_VERSION}" \
38+
"$(id -u):$(id -g)" -R /out
39+
40+
sed -i -e "s/\${quotedTitle}/\"$title\"/g" "$OUT_DIR/$OUT_FILE"
41+
sed -i -e "s/\${title}/$title/g" "$OUT_DIR/$OUT_FILE"
42+
sed -i -e "s/\${version}/$version/g" "$OUT_DIR/$OUT_FILE"
43+
}
44+
45+
generate 1.3
46+
generate 1.4
47+
generate 1.5
48+
generate 1.6

0 commit comments

Comments
 (0)