Skip to content

Commit 0f00800

Browse files
authored
chore: depedabot for all used ecosystems (#424)
- add dependabot for all used ecosystems - revisit doc gen scripts to make dependencies/maintenance more easily --------- Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 95c5820 commit 0f00800

File tree

6 files changed

+114
-34
lines changed

6 files changed

+114
-34
lines changed

.github/dependabot.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,43 @@ updates:
2121
prefix: 'chore' ## prefix maximum string length of 15
2222
include: 'scope'
2323
open-pull-requests-limit: 999
24+
- package-ecosystem: 'maven'
25+
directory: '/tools'
26+
schedule:
27+
interval: 'weekly'
28+
day: 'saturday'
29+
labels: [ 'dependencies' ]
30+
commit-message:
31+
prefix: 'chore' ## prefix maximum string length of 15
32+
include: 'scope'
33+
open-pull-requests-limit: 999
34+
- package-ecosystem: 'composer'
35+
directory: '/tools/src/test/php'
36+
schedule:
37+
interval: 'weekly'
38+
day: 'saturday'
39+
labels: [ 'dependencies' ]
40+
commit-message:
41+
prefix: 'chore' ## prefix maximum string length of 15
42+
include: 'scope'
43+
open-pull-requests-limit: 999
44+
- package-ecosystem: 'npm'
45+
directory: '/tools/src/test/js'
46+
schedule:
47+
interval: 'weekly'
48+
day: 'saturday'
49+
labels: [ 'dependencies' ]
50+
commit-message:
51+
prefix: 'chore' ## prefix maximum string length of 15
52+
include: 'scope'
53+
open-pull-requests-limit: 999
54+
- package-ecosystem: 'pip'
55+
directory: '/docgen/json'
56+
schedule:
57+
interval: 'weekly'
58+
day: 'saturday'
59+
labels: [ 'dependencies' ]
60+
commit-message:
61+
prefix: 'chore' ## prefix maximum string length of 15
62+
include: 'scope'
63+
open-pull-requests-limit: 999

.github/workflows/build_docs.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ jobs:
1919
- name: Checkout
2020
# see https://github.com/actions/checkout
2121
uses: actions/checkout@v4
22-
- name: Setup Python Environment
23-
# see https://github.com/actions/setup-python
24-
uses: actions/setup-python@v5
22+
- name: Set up JDK
23+
# see https://github.com/actions/setup-java
24+
uses: actions/setup-java@v4
2525
with:
26-
python-version: ${{ env.PYTHON_VERSION_DEFAULT }}
27-
architecture: 'x64'
26+
java-version: '21'
27+
distribution: 'zulu'
28+
java-package: jdk
2829
- name: Generate Schema documentation
2930
run: ./gen.sh
3031
- name: Archive Schema documentation

docgen/json/gen.sh

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,52 @@
11
#!/bin/bash
2-
rm -f -R docs
3-
mkdir -p docs/{1.2,1.3,1.4,1.5,1.6}
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+
rm -f -R "$DOCS_PATH"
10+
mkdir -p "$DOCS_PATH/"{1.2,1.3,1.4,1.5,1.6}
411

512
# Check to see if generate-schema-doc is executable and is in the path. If not, install JSON Schema for Humans.
6-
if ! [ -x "$(command -v generate-schema-doc)" ]; then
7-
pip3 install json-schema-for-humans==0.47
13+
if ! [ -x "$(command -v generate-schema-doc)" ]
14+
then
15+
# dependencies managed externally, so dependebot/renovate can pick it up
16+
pip3 install -r "$THIS_PATH/requirements.txt"
817
fi
918

1019
generate () {
11-
version=$1
12-
title='CycloneDX v'$version' JSON Reference'
13-
echo Generating $title
14-
STRICT_SCHEMA_FILE='../../schema/bom-'$version'-strict.schema.json'
15-
if [ -f "$STRICT_SCHEMA_FILE" ]; then
16-
SCHEMA_FILE='../../schema/bom-'$version'-strict.schema.json'
17-
else
18-
SCHEMA_FILE='../../schema/bom-'$version'.schema.json'
20+
version="$1"
21+
title="CycloneDX v${version} JSON Reference"
22+
echo "Generating: $title"
23+
24+
SCHEMA_FILE="$SCHEMA_PATH/bom-${version}.schema.json"
25+
STRICT_SCHEMA_FILE="$SCHEMA_PATH/bom-${version}-strict.schema.json"
26+
if [ -f "$STRICT_SCHEMA_FILE" ]
27+
then
28+
SCHEMA_FILE="$STRICT_SCHEMA_FILE"
1929
fi
20-
echo $SCHEMA_FILE
21-
generate-schema-doc --config no_link_to_reused_ref --config no_show_breadcrumbs --config no_collapse_long_descriptions --deprecated-from-description --config title="$title" --config custom_template_path=$(pwd)'/templates/cyclonedx/base.html' --minify $SCHEMA_FILE 'docs/'$version'/index.html'
22-
sed -i -e "s/\${quotedTitle}/\"$title\"/g" 'docs/'$version'/index.html'
23-
sed -i -e "s/\${title}/$title/g" 'docs/'$version'/index.html'
24-
sed -i -e "s/\${version}/$version/g" 'docs/'$version'/index.html'
30+
echo "$SCHEMA_FILE"
31+
32+
generate-schema-doc \
33+
--config no_link_to_reused_ref \
34+
--config no_show_breadcrumbs \
35+
--config no_collapse_long_descriptions \
36+
--deprecated-from-description \
37+
--config title="$title" \
38+
--config custom_template_path="$TEMPLATES_PATH/cyclonedx/base.html" \
39+
--minify \
40+
"$SCHEMA_FILE" \
41+
"$DOCS_PATH/$version/index.html"
42+
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"
2546
}
2647

2748
generate 1.2
2849
generate 1.3
2950
generate 1.4
3051
generate 1.5
31-
generate 1.6
52+
generate 1.6

docgen/json/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
json-schema-for-humans==0.47

docgen/xml/gen.sh

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
11
#!/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+
8+
SAXON_JAR='Saxon-HE-9.9.1-8.jar'
9+
210
rm -f -R docs
3-
if [ ! -f "Saxon-HE-9.9.1-8.jar" ]; then
4-
curl -O https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/9.9.1-8/Saxon-HE-9.9.1-8.jar
11+
if [ ! -f "$THIS_PATH/$SAXON_JAR" ]; then
12+
curl --output-dir "$THIS_PATH" -O \
13+
"https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/9.9.1-8/$SAXON_JAR"
514
fi
615

716
generate () {
8-
version=$1
9-
title='CycloneDX v'$version' XML Reference'
10-
echo Generating $title
11-
java -jar Saxon-HE-9.9.1-8.jar -s:'../../schema/bom-'$version'.xsd' -xsl:xs3p.xsl -o:'./docs/'$version'/index.html' cycloneDxVersion="$version" title="$title"
17+
version="$1"
18+
title="CycloneDX v$version XML Reference"
19+
echo "Generating: $title"
20+
21+
java -jar "$THIS_PATH/$SAXON_JAR" \
22+
-s:"$SCHEMA_PATH/bom-${version}.xsd" \
23+
-xsl:"$THIS_PATH/xs3p.xsl" \
24+
-o:"$DOCS_PATH/$version/index.html" \
25+
cycloneDxVersion="$version" \
26+
title="$title"
1227
}
1328

1429
generate 1.0
@@ -17,4 +32,4 @@ generate 1.2
1732
generate 1.3
1833
generate 1.4
1934
generate 1.5
20-
generate 1.6
35+
generate 1.6

tools/src/test/proto/test.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ TEST_RES_DIR='tools/src/test/resources'
1010

1111
REMOTE="https://github.com/${GITHUB_REPOSITORY:-CycloneDX/specification}.git"
1212

13+
BUF_IMAGE_VERSION='1.30.0'
14+
1315

1416
## ----
1517

@@ -28,7 +30,7 @@ function schema-lint () {
2830
--volume "${ROOT_PATH}/${SCHEMA_DIR}:/workspace/${SCHEMA_DIR}:ro" \
2931
--volume "${THIS_PATH}/buf_lint.yaml:/workspace/buf.yaml:ro" \
3032
--workdir '/workspace' \
31-
bufbuild/buf:1.30.0 \
33+
bufbuild/buf:"$BUF_IMAGE_VERSION" \
3234
lint --path "$SCHEMA_DIR" \
3335
--config 'buf.yaml' \
3436
--error-format "$LOG_FORMAT"
@@ -59,7 +61,7 @@ function schema-breaking-version () {
5961
--volume "${ROOT_PATH}/${SCHEMA_DIR}/${OLD}:/workspace/${SCHEMA_DIR_OLD}/${NEW}:ro" \
6062
--volume "${THIS_PATH}/buf_breaking-version.yaml:/workspace/buf.yaml:ro" \
6163
--workdir '/workspace' \
62-
bufbuild/buf:1.30.0 \
64+
bufbuild/buf:"$BUF_IMAGE_VERSION" \
6365
breaking "$SCHEMA_DIR" \
6466
--against "$SCHEMA_DIR_OLD" \
6567
--config 'buf.yaml' \
@@ -87,7 +89,7 @@ function schema-breaking-remote () {
8789
--volume "${ROOT_PATH}/${SCHEMA_DIR}:/workspace/${SCHEMA_DIR}:ro" \
8890
--volume "${THIS_PATH}/buf_breaking-remote.yaml:/workspace/buf.yaml:ro" \
8991
--workdir '/workspace' \
90-
bufbuild/buf:1.30.0 \
92+
bufbuild/buf:"$BUF_IMAGE_VERSION" \
9193
breaking "$SCHEMA_DIR" \
9294
--against "${REMOTE}#subdir=${SCHEMA_DIR}" \
9395
--config 'buf.yaml' \
@@ -113,7 +115,7 @@ function schema-functional () {
113115
--volume "${ROOT_PATH}/${SCHEMA_DIR}:/workspace/${SCHEMA_DIR}:ro" \
114116
--volume "${FILE}:/workspace/test_res:ro" \
115117
--workdir '/workspace' \
116-
bufbuild/buf:1.30.0 \
118+
bufbuild/buf:"$BUF_IMAGE_VERSION" \
117119
convert "${SCHEMA_DIR}/${SCHEMA_FILE}" \
118120
--type "$MESSAGE" \
119121
--from 'test_res#format=txtpb' \

0 commit comments

Comments
 (0)