@@ -1086,24 +1086,30 @@ jobs:
10861086 "html"' || '' }}
10871087 )
10881088
1089+ demo_failures=""
1090+
10891091 # Generate the demos for each variant and generator
10901092 for variant in single multi; do
10911093 for generator in "${generators[@]}"; do
10921094 [[ $generator = xml && $variant = multi ]] && continue
10931095 [[ $variant = multi ]] && multipage="true" || multipage="false"
1094- # boost.url demo
1095- mrdocs --config="$(pwd)/boost/libs/url/doc/mrdocs.yml" "../CMakeLists.txt" --output="$(pwd)/demos/boost-url/$variant/$generator" --multipage=$multipage --generator="$generator" --log-level=debug
1096- echo "Number of files in demos/boost-url/$variant/$generator: $(find demos/boost-url/$variant/$generator -type f | wc -l)"
1097- # beman.optional demo
1098- mrdocs --config="$(pwd)/beman-optional/docs/mrdocs.yml" --output="$(pwd)/demos/beman-optional/$variant/$generator" --multipage=$multipage --generator="$generator" --log-level=debug
1099- # nlohmann-json demo
1100- mrdocs --config="$(pwd)/nlohmann-json/docs/mrdocs.yml" --output="$(pwd)/demos/nlohmann-json/$variant/$generator" --multipage=$multipage --generator="$generator" --log-level=debug
1101- # mp-units demo
1102- mrdocs --config="$(pwd)/mp-units/docs/mrdocs.yml" --output="$(pwd)/demos/mp-units/$variant/$generator" --multipage=$multipage --generator="$generator" --log-level=debug
1103- # fmt demo
1104- mrdocs --config="$(pwd)/fmt/doc/mrdocs.yml" --output="$(pwd)/demos/fmt/$variant/$generator" --multipage=$multipage --generator="$generator" --log-level=debug
1105- # mrdocs documenting mrdocs demo
1106- mrdocs --config="$(pwd)/docs/mrdocs.yml" "$(pwd)/CMakeLists.txt" --output="$(pwd)/demos/mrdocs/$variant/$generator" --multipage=$multipage --generator="$generator" --log-level=debug
1096+ for project_args in \
1097+ "boost-url|$(pwd)/boost/libs/url/doc/mrdocs.yml|../CMakeLists.txt" \
1098+ "beman-optional|$(pwd)/beman-optional/docs/mrdocs.yml|" \
1099+ "nlohmann-json|$(pwd)/nlohmann-json/docs/mrdocs.yml|" \
1100+ "mp-units|$(pwd)/mp-units/docs/mrdocs.yml|" \
1101+ "fmt|$(pwd)/fmt/doc/mrdocs.yml|" \
1102+ "mrdocs|$(pwd)/docs/mrdocs.yml|$(pwd)/CMakeLists.txt" \
1103+ ; do
1104+ IFS='|' read -r project config extra <<< "$project_args"
1105+ outdir="$(pwd)/demos/$project/$variant/$generator"
1106+ cmd=(mrdocs --config="$config" $extra --output="$outdir" --multipage=$multipage --generator="$generator" --log-level=debug)
1107+ if ! "${cmd[@]}"; then
1108+ echo "FAILED: $project/$variant/$generator"
1109+ demo_failures="$demo_failures $project/$variant/$generator\n ${cmd[*]}\n"
1110+ rm -rf "$outdir"
1111+ fi
1112+ done
11071113 done
11081114
11091115 # Render the asciidoc files to html using asciidoctor
@@ -1114,6 +1120,9 @@ jobs:
11141120 dst="$root/adoc-asciidoc"
11151121 stylesheet="$(pwd)/share/mrdocs/addons/generator/common/layouts/style.css"
11161122
1123+ # Skip if adoc generation failed for this project
1124+ [[ -d "$src" ]] || continue
1125+
11171126 # Create the top-level output dir
11181127 mkdir -p "$dst"
11191128
@@ -1133,6 +1142,12 @@ jobs:
11331142 tar -cjf $(pwd)/demos.tar.gz -C $(pwd)/demos --strip-components 1 .
11341143 echo "demos_path=$(pwd)/demos.tar.gz" >> $GITHUB_ENV
11351144
1145+ if [[ -n "$demo_failures" ]]; then
1146+ echo "The following demos failed:"
1147+ printf "$demo_failures"
1148+ exit 1
1149+ fi
1150+
11361151 - name : Upload Demos as Artifacts
11371152 uses : actions/upload-artifact@v4
11381153 with :
0 commit comments