From f9ac66c05861d71e0050908c54c437bd45ac1a20 Mon Sep 17 00:00:00 2001 From: Lari Hotari Date: Thu, 3 Jun 2021 10:51:18 +0300 Subject: [PATCH 1/2] Support building site without CROWDIN_DOCUSAURUS_API_KEY - build English site when key isn't set - this is useful for debugging and improving the Website build --- site2/tools/build-site.sh | 71 ++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/site2/tools/build-site.sh b/site2/tools/build-site.sh index aa1affac482a5..b9144c42376d1 100755 --- a/site2/tools/build-site.sh +++ b/site2/tools/build-site.sh @@ -19,7 +19,7 @@ # ROOT_DIR=$(git rev-parse --show-toplevel) -VERSION=`${ROOT_DIR}/src/get-project-version.py` +VERSION=$(${ROOT_DIR}/src/get-project-version.py) set -x -e @@ -34,44 +34,55 @@ if [ "$CROWDIN_DOCUSAURUS_API_KEY" != "UNSET" ]; then # or current hour is 0-5 # this leads to executing crowdin-upload once per day when website build is scheduled # to run with cron expression '0 */6 * * *' - CURRENT_HOUR=`date +%H` + CURRENT_HOUR=$(date +%H) if [[ "$CROWDIN_UPLOAD" == "1" || $CURRENT_HOUR -lt 6 ]]; then yarn run crowdin-upload fi yarn run crowdin-download -fi -# TODO: remove this after figuring out why crowdin removed code tab when generating translated files -# https://github.com/apache/pulsar/issues/5816 -cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/zh-CN/version-2.4.2/functions-develop.md -cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/zh-CN/version-2.5.0/functions-develop.md -cp versioned_docs/version-2.5.0/io-overview.md translated_docs/zh-CN/version-2.5.0/io-overview.md -cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/zh-CN/version-2.5.1/functions-develop.md -cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/zh-CN/version-2.5.2/functions-develop.md + # TODO: remove this after figuring out why crowdin removed code tab when generating translated files + # https://github.com/apache/pulsar/issues/5816 + cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/zh-CN/version-2.4.2/functions-develop.md + cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/zh-CN/version-2.5.0/functions-develop.md + cp versioned_docs/version-2.5.0/io-overview.md translated_docs/zh-CN/version-2.5.0/io-overview.md + cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/zh-CN/version-2.5.1/functions-develop.md + cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/zh-CN/version-2.5.2/functions-develop.md -cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/ja/version-2.4.2/functions-develop.md -cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/ja/version-2.5.0/functions-develop.md -cp versioned_docs/version-2.5.0/io-overview.md translated_docs/ja/version-2.5.0/io-overview.md -cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/ja/version-2.5.1/functions-develop.md -cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/ja/version-2.5.2/functions-develop.md + cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/ja/version-2.4.2/functions-develop.md + cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/ja/version-2.5.0/functions-develop.md + cp versioned_docs/version-2.5.0/io-overview.md translated_docs/ja/version-2.5.0/io-overview.md + cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/ja/version-2.5.1/functions-develop.md + cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/ja/version-2.5.2/functions-develop.md -cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/fr/version-2.4.2/functions-develop.md -cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/fr/version-2.5.0/functions-develop.md -cp versioned_docs/version-2.5.0/io-overview.md translated_docs/fr/version-2.5.0/io-overview.md -cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/fr/version-2.5.1/functions-develop.md -cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/fr/version-2.5.2/functions-develop.md + cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/fr/version-2.4.2/functions-develop.md + cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/fr/version-2.5.0/functions-develop.md + cp versioned_docs/version-2.5.0/io-overview.md translated_docs/fr/version-2.5.0/io-overview.md + cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/fr/version-2.5.1/functions-develop.md + cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/fr/version-2.5.2/functions-develop.md -cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/zh-TW/version-2.4.2/functions-develop.md -cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/zh-TW/version-2.5.0/functions-develop.md -cp versioned_docs/version-2.5.0/io-overview.md translated_docs/zh-TW/version-2.5.0/io-overview.md -cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/zh-TW/version-2.5.1/functions-develop.md -cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/zh-TW/version-2.5.2/functions-develop.md + cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/zh-TW/version-2.4.2/functions-develop.md + cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/zh-TW/version-2.5.0/functions-develop.md + cp versioned_docs/version-2.5.0/io-overview.md translated_docs/zh-TW/version-2.5.0/io-overview.md + cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/zh-TW/version-2.5.1/functions-develop.md + cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/zh-TW/version-2.5.2/functions-develop.md -cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/ko/version-2.4.2/functions-develop.md -cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/ko/version-2.5.0/functions-develop.md -cp versioned_docs/version-2.5.0/io-overview.md translated_docs/ko/version-2.5.0/io-overview.md -cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/ko/version-2.5.1/functions-develop.md -cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/ko/version-2.5.2/functions-develop.md + cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/ko/version-2.4.2/functions-develop.md + cp versioned_docs/version-2.5.0/functions-develop.md translated_docs/ko/version-2.5.0/functions-develop.md + cp versioned_docs/version-2.5.0/io-overview.md translated_docs/ko/version-2.5.0/io-overview.md + cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/ko/version-2.5.1/functions-develop.md + cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/ko/version-2.5.2/functions-develop.md +else + # set English as the only language to build in this case + cat > languages.js <<'EOF' +const languages = [ +{ + enabled: true, + name: 'English', + tag: 'en', +}]; +module.exports = languages; +EOF +fi yarn build From aca80df145ce6e734f86c58ff54cf202bd345b9b Mon Sep 17 00:00:00 2001 From: Lari Hotari Date: Thu, 3 Jun 2021 20:28:59 +0300 Subject: [PATCH 2/2] Add review feedback: extract shell function --- site2/tools/build-site.sh | 43 ++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/site2/tools/build-site.sh b/site2/tools/build-site.sh index b9144c42376d1..9ef839460b24f 100755 --- a/site2/tools/build-site.sh +++ b/site2/tools/build-site.sh @@ -21,25 +21,7 @@ ROOT_DIR=$(git rev-parse --show-toplevel) VERSION=$(${ROOT_DIR}/src/get-project-version.py) -set -x -e - -export NODE_OPTIONS="--max-old-space-size=2048" #increase to 2gb, default is 512mb -${ROOT_DIR}/site2/tools/generate-api-docs.sh -cd ${ROOT_DIR}/site2/website -yarn -yarn write-translations - -if [ "$CROWDIN_DOCUSAURUS_API_KEY" != "UNSET" ]; then - # upload only if environment variable CROWDIN_UPLOAD=1 is set - # or current hour is 0-5 - # this leads to executing crowdin-upload once per day when website build is scheduled - # to run with cron expression '0 */6 * * *' - CURRENT_HOUR=$(date +%H) - if [[ "$CROWDIN_UPLOAD" == "1" || $CURRENT_HOUR -lt 6 ]]; then - yarn run crowdin-upload - fi - yarn run crowdin-download - +function workaround_crowdin_problem_by_copying_files() { # TODO: remove this after figuring out why crowdin removed code tab when generating translated files # https://github.com/apache/pulsar/issues/5816 cp versioned_docs/version-2.4.2/functions-develop.md translated_docs/zh-CN/version-2.4.2/functions-develop.md @@ -71,6 +53,29 @@ if [ "$CROWDIN_DOCUSAURUS_API_KEY" != "UNSET" ]; then cp versioned_docs/version-2.5.0/io-overview.md translated_docs/ko/version-2.5.0/io-overview.md cp versioned_docs/version-2.5.1/functions-develop.md translated_docs/ko/version-2.5.1/functions-develop.md cp versioned_docs/version-2.5.2/functions-develop.md translated_docs/ko/version-2.5.2/functions-develop.md +} + + +set -x -e + +export NODE_OPTIONS="--max-old-space-size=2048" #increase to 2gb, default is 512mb +${ROOT_DIR}/site2/tools/generate-api-docs.sh +cd ${ROOT_DIR}/site2/website +yarn +yarn write-translations + +if [ "$CROWDIN_DOCUSAURUS_API_KEY" != "UNSET" ]; then + # upload only if environment variable CROWDIN_UPLOAD=1 is set + # or current hour is 0-5 + # this leads to executing crowdin-upload once per day when website build is scheduled + # to run with cron expression '0 */6 * * *' + CURRENT_HOUR=$(date +%H) + if [[ "$CROWDIN_UPLOAD" == "1" || $CURRENT_HOUR -lt 6 ]]; then + yarn run crowdin-upload + fi + yarn run crowdin-download + + workaround_crowdin_problem_by_copying_files else # set English as the only language to build in this case cat > languages.js <<'EOF'