diff --git a/containers/book/Earthfile b/containers/book/Earthfile index fc570801e0..6d4aa7ff0b 100644 --- a/containers/book/Earthfile +++ b/containers/book/Earthfile @@ -4,6 +4,7 @@ FROM debian:stable-slim builder: FROM ghcr.io/input-output-hk/catalyst-gh-tools:v1.4.3 + RUN rustup component add rustfmt COPY --dir ../..+rust-source/src . COPY --dir ../..+rust-source/tests . @@ -20,6 +21,7 @@ rustdoc-test: rustdoc: FROM +builder + BUILD +rustdoc-test RUN rustup component add rustfmt --toolchain nightly-x86_64-unknown-linux-gnu ENV RUSTDOCFLAGS="$RUSTDOCFLAGS --enable-index-page -Zunstable-options" RUN cargo +nightly doc \ @@ -55,7 +57,7 @@ builder-chapter-8: RUN mkdir /db-diagrams - CMD ["./build-db-diagrams.sh"] + ENTRYPOINT ["./build-db-diagrams.sh"] # Need to be run with the -P flag build-chapter-8: @@ -93,7 +95,9 @@ mdbook: # Add an empty '.git' folder, needed by mdbook-open-on-gh for relative path calculation RUN mkdir .git - CMD while ! mdbook build; do sleep 1; done; + COPY build-mdbook.sh . + RUN chmod ugo+x ./build-mdbook.sh + ENTRYPOINT ["./build-mdbook.sh"] #RUN mdbook build SAVE ARTIFACT book diff --git a/containers/book/build-db-diagrams.sh b/containers/book/build-db-diagrams.sh index 9fa854372e..6d62db8ca5 100644 --- a/containers/book/build-db-diagrams.sh +++ b/containers/book/build-db-diagrams.sh @@ -1,23 +1,30 @@ #!/bin/bash -echo "Starting to build Event DB diagrams." +echo "Starting to build EventDB diagrams." # doc-event-db-setup -echo "Initializing Event DB." +echo "Initializing EventDB." pushd src/event-db # [tasks.doc-event-db-init] -while ! psql -e -f setup/setup-db.sql \ +# retry up to six times every 5 seconds +if ! (r=6; while ! psql -e -f setup/setup-db.sql \ -v dbName=CatalystEventDocs \ - -v dbDescription="Local Docs Catalayst Event DB" \ + -v dbDescription="Local Docs Catalayst EventDB" \ -v dbUser="catalyst-event-docs" \ - -v dbUserPw="CHANGE_ME" ${@}; -do sleep 1; -done; + -v dbUserPw="CHANGE_ME" ${@}; do + ((--r))||exit + echo "Failed to initialize EventDB. Retrying." + sleep 5; done;) ; then + echo "EventDB initialization failed." + exit 1; +fi +echo "Initialized EventDB" + # [tasks.run-event-doc-db-migration] refinery migrate -e DATABASE_URL -c refinery.toml -p ./migrations -## Build the Event DB Documentation (Images of Schema) +## Build the EventDB Documentation (Images of Schema) popd -echo "Building Event DB diagrams." +echo "Building EventDB diagrams." # [tasks.build-db-docs-overview-diagram] dbviz -d CatalystEventDocs \ -h postgres \ @@ -115,4 +122,4 @@ dbviz -d CatalystEventDocs \ moderation \ > /db-diagrams/event-db-moderation.dot -echo "Finished building Event DB diagrams." +echo "Finished building EventDB diagrams." diff --git a/containers/book/build-mdbook.sh b/containers/book/build-mdbook.sh new file mode 100644 index 0000000000..c19398d5d0 --- /dev/null +++ b/containers/book/build-mdbook.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Enable strict mode +set +x +set -o errexit +set -o pipefail +set -o nounset +set -o functrace +set -o errtrace +set -o monitor +set -o posix +shopt -s dotglob + +echo ">>> Building mdbook..." +CMD="mdbook build" +# will retry to build 6 times every 5 seconds +if ! (r=6; while ! eval "$CMD" ; do + ((--r))||exit + echo "Build failed. Retrying."; + sleep 5;done) ; then + exit 1 +fi + +echo ">>> Build successful."; +exit 0