diff --git a/documentation/README.md b/documentation/README.md index e074f7cdfe..9e490e4d57 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -1,7 +1,13 @@ # Documentation +## Doc projects +Each directory contains a readme with more information about running and contributing to the projects. Each is built with [`mdbook`](https://rust-lang.github.io/mdBook/index.html) - use `mdbook serve` to build and serve them (defaults to `localhost:3000`). * `docs` contains technical documentation hosted at [https://nymtech.net/docs](https://nymtech.net/docs) * `dev-portal` contains developer documentation hosted at [https://nymtech.net/developers](https://nymtech.net/developers) * `operators` contains node setup and maintenance guides hosted at [https://nymtech.net/operators](https://nymtech.net/operators) -Each directory contains a readme with more information about running and contributing to the projects. Each is built with [`mdbook`](https://rust-lang.github.io/mdBook/index.html) - use `mdbook serve` to build and serve them (defaults to `localhost:3000`). +## Scripts +* `bump_versions.sh` allows you to update the `platform_release_version` and `wallet_release_version` variables in the `book.toml` of each mdbook project at once. You can also optionally update the `minimum_rust_version` as well. Helpful for lazy-updating when cutting a new version of the docs. + * `build_all_to_dist.sh` is used by the `ci-dev.yml` and `cd-dev.yml` scripts for building all mdbook projects and moving the rendered html to `../dist/` to be rsynced with various servers. + + diff --git a/documentation/build_all_to_dist.sh b/documentation/build_all_to_dist.sh index 721ed07e6a..b414e92df6 100755 --- a/documentation/build_all_to_dist.sh +++ b/documentation/build_all_to_dist.sh @@ -1,37 +1,45 @@ #!/bin/bash - -# commands assume you run script from `nym/documentation/` +# this is a script called by the github CI and CD workflows to build all 3 docs projects +# and move them to /dist/ in the root of the monorepo. They are rsynced to various servers +# from there by subsequent workflow tasks. # array of project dirs declare -a projects=("docs" "dev-portal" "operators") -## now loop through the above array -for i in "${projects[@]}" -do - # cd to project dir - cd "./$i" && - # little sanity checks - echo $(pwd) && echo $(mdbook --version) && - # clean old book - echo "cleaning old book" - rm -rf ./book/ - # build book - mdbook build - # check for destination, if ! then mkdir & check again else echo thumbs up - if [ ! -d ../../dist/docs/$i ]; then - echo "dest doesn't exist: creating dir" - mkdir -p ../../dist/docs/$i - fi - if [ -d ../../dist/docs/$i ]; then - echo "cp destination exists, all good" - fi - # clean old dist/$i - rm -rf ../../dist/docs/$i - # move newly rendered book/ to dist - rsync -r ./book/html/ ../../dist/docs/$i - # sanity check - ls -laF ../../dist/docs/ - # cd back to ../documentation/ - cd ../ -done -mv ../dist/docs/dev-portal ../dist/docs/developers +# check you're calling from the right place +if [ $(pwd | awk -F/ '{print $NF}') != "documentation" ] +then + echo "failure: please run script from documentation/" +else + for i in "${projects[@]}" + do + # cd to project dir + cd "./$i" && + # little sanity checks + echo $(pwd) && echo $(mdbook --version) && + # clean old book + echo "cleaning old book" + rm -rf ./book/ + # build book + mdbook build + # check for destination, if ! then mkdir & check again else echo thumbs up + if [ ! -d ../../dist/docs/$i ]; then + echo "dest doesn't exist: creating dir" + mkdir -p ../../dist/docs/$i + fi + if [ -d ../../dist/docs/$i ]; then + echo "cp destination exists, all good" + fi + # clean old dist/$i + rm -rf ../../dist/docs/$i + # move newly rendered book/ to dist + rsync -r ./book/html/ ../../dist/docs/$i + # sanity check + ls -laF ../../dist/docs/ + # cd back to ../documentation/ + cd ../ + done + # rename for server paths + rm -rf ../dist/docs/developers + mv ../dist/docs/dev-portal ../dist/docs/developers +fi diff --git a/documentation/bump_versions.sh b/documentation/bump_versions.sh new file mode 100755 index 0000000000..6201119a77 --- /dev/null +++ b/documentation/bump_versions.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# this takes two args: platform release version and wallet release version. +# it then uses sed to bump them in the three book.toml files. +# +# e.g if the upcoming platform release was v1.1.29 and the release version 1.2.9 you'd run this as: +# `./bump_versions.sh "1.1.29" "1.2.9"` +# +# you can also set the minumum rust version by passing an optional 3rd argument: +# `./bump_versions.sh "1.1.29" "1.2.9" "1.67"` + +# array of project dirs +declare -a projects=("docs" "dev-portal" "operators") + +# check number of args passed +if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; +then + echo "failure: please pass at least 2 and at most 3 args: " + echo "./bump_version.sh [OPTIONAL]" + exit 0 +fi + +# check you're calling from the right place +if [ $(pwd | awk -F/ '{print $NF}') != "documentation" ] +then + echo "failure: please run script from documentation/" + exit 0 +else + ## now loop through the above array sed-ing the variable values in the book.toml files + for i in "${projects[@]}" + do + # sed the vars in the book.toml file for each project + echo "setting platform and wallet versions in $i/" + sed -i 's/platform_release_version =.*/platform_release_version = "'$1'"/' "$i"/book.toml + sed -i 's/wallet_release_version =.*/wallet_release_version = "'$2'"/' "$i"/book.toml + if [ "$3" ] + then + echo "setting minimum rust version in $i/" + sed -i 's/minimum_rust_version = .*/minimum_rust_version = "'$3'"/' "$i"/book.toml + fi + done +fi