Skip to content

Commit 2de8ade

Browse files
authored
Merge pull request #6171 from Jiloc/feat/config-docs-generator
feat: config docs generator
2 parents a9022e4 + 826c7cc commit 2de8ade

15 files changed

+5636
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ testnet/index.html
6161
/testnet/helium/target/
6262
/contrib/tools/puppet-chain/target/
6363
/contrib/core-contract-tests/.cache/
64+
/contrib/tools/config-docs-generator/target/
6465

6566
# These are backup files generated by rustfmt
6667
**/*.rs.bk

Cargo.lock

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ members = [
99
"libstackerdb",
1010
"libsigner",
1111
"stacks-signer",
12-
"testnet/stacks-node"]
12+
"testnet/stacks-node",
13+
"contrib/tools/config-docs-generator"]
1314

1415
# Dependencies we want to keep the same between workspace members
1516
[workspace.dependencies]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[package]
2+
name = "config-docs-generator"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
[[bin]]
7+
name = "extract-docs"
8+
path = "src/extract_docs.rs"
9+
10+
[[bin]]
11+
name = "generate-markdown"
12+
path = "src/generate_markdown.rs"
13+
14+
# Add integration test configuration
15+
[[test]]
16+
name = "integration"
17+
path = "tests/integration.rs"
18+
19+
[dependencies]
20+
serde = { version = "1.0", features = ["derive"] }
21+
serde_json = "1.0"
22+
clap = { version = "4.0", features = ["derive"] }
23+
regex = "1.0"
24+
anyhow = "1.0"
25+
once_cell = "1.18"
26+
27+
# Add test dependencies
28+
[dev-dependencies]
29+
tempfile = "3.0"
30+
assert_cmd = "2.0"
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Use a specific nightly toolchain for reproducible builds
2+
FROM rustlang/rust@sha256:04690ffa09cddd358b349272173155319f384e57816614eea0840ec7f9422862
3+
4+
RUN apt-get update -y \
5+
&& apt-get install -y --no-install-recommends \
6+
jq \
7+
&& rm -rf /var/lib/apt/lists/*
8+
9+
# Set the working directory for building
10+
WORKDIR /build
11+
12+
# Copy the entire project root to preserve structure
13+
# Copy from three levels up (project root) to maintain the directory structure
14+
COPY ../../../ /build
15+
16+
RUN useradd -ms /bin/bash docs-builder
17+
RUN chown docs-builder -R /build
18+
USER docs-builder
19+
20+
# Pre-build the config-docs-generator binaries during image build
21+
RUN cargo build --package config-docs-generator --release
22+
23+
# Set the working directory where the project will be mounted at runtime
24+
WORKDIR /project_root
25+
26+
# Set environment variables for generate-config-docs.sh
27+
ENV PROJECT_ROOT=/project_root \
28+
CARGO_TARGET_DIR=/tmp/stacks-config-docs/target \
29+
TEMP_DIR=/tmp/stacks-config-docs/doc-generation \
30+
EXTRACT_DOCS_BIN=/build/target/release/extract-docs \
31+
GENERATE_MARKDOWN_BIN=/build/target/release/generate-markdown \
32+
OUTPUT_DIR=/project_root/target/generated-docs \
33+
SKIP_BUILD=true
34+
35+
# Create the Docker-specific temp directory
36+
RUN mkdir -p /tmp/stacks-config-docs
37+
38+
ENTRYPOINT ["/build/generate-config-docs.sh"]

0 commit comments

Comments
 (0)