diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml
index 636f7e47afad8..20fed5df3dfd9 100644
--- a/.gitlab/pipeline/build.yml
+++ b/.gitlab/pipeline/build.yml
@@ -114,11 +114,30 @@ build-rustdoc:
script:
# FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"` and `--all-features`
# FIXME: return to stable when https://github.com/rust-lang/rust/issues/96937 gets into stable
- - time cargo doc --workspace --no-deps
+ - time cargo doc --features try-runtime,experimental --workspace --no-deps
- rm -f ./target/doc/.lock
- mv ./target/doc ./crate-docs
# FIXME: remove me after CI image gets nonroot
- chown -R nonroot:nonroot ./crate-docs
+ # Inject Simple Analytics (https://www.simpleanalytics.com/) privacy preserving tracker into
+ # all .html files
+ - |
+ inject_simple_analytics() {
+ local path="$1"
+ local script_content=""
+
+ # Function that inject script into the head of an html file using sed.
+ process_file() {
+ local file="$1"
+ echo "Adding Simple Analytics script to $file"
+ sed -i "s||$script_content|" "$file"
+ }
+ export -f process_file
+
+ # Modify .html files in parallel using xargs, otherwise it can take a long time.
+ find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {}
+ }
+ inject_simple_analytics "./crate-docs"
- echo "" > ./crate-docs/index.html
build-implementers-guide:
diff --git a/substrate/.maintain/rustdocs-release.sh b/substrate/.maintain/rustdocs-release.sh
index 2a1e141e63ad2..091f9289e4e34 100755
--- a/substrate/.maintain/rustdocs-release.sh
+++ b/substrate/.maintain/rustdocs-release.sh
@@ -1,7 +1,8 @@
#!/usr/bin/env bash
# set -x
-# This script manages the deployment of Substrate rustdocs to https://paritytech.github.io/substrate/.
+# This script used to manage the deployment of Substrate rustdocs to https://paritytech.github.io/substrate/.
+# It is no longer used anywhere, and only here for historical/demonstration purposes.
# - With `deploy` sub-command, it will checkout the passed-in branch/tag ref, build the rustdocs
# locally (this takes some time), update the `index.html` index page, and push it to remote
# `gh-pages` branch. So users running this command need to have write access to the remote