| # | |
| # This script is intended to be called from the production Dockerfile | |
| # Though it isn't working with all of the files from docs-internal (it only COPYs what is needed), | |
| # it is useful to think of these scripts running from the root of the docs-internal repo. | |
| # | |
| # Fetches and resolves docs-internal, early-access, and translations repos | |
| echo "Fetching and resolving early-access, and translations repos" | |
| # Exit immediately if a command exits with a non-zero status | |
| set -e | |
| # Import the clone_or_use_cached_repo function | |
| . ./build-scripts/clone-or-use-cached-repo.sh | |
| # Set the GITHUB_TOKEN environment variable from the mounted --secret passed to Docker build | |
| GITHUB_TOKEN=$(cat /run/secrets/DOCS_BOT_PAT_BASE) | |
| # - - - - - - - - - - | |
| # Early access | |
| # - - - - - - - - - - | |
| echo "Fetching early access..." | |
| clone_or_use_cached_repo "docs-early-access" "docs-early-access" "main" | |
| echo "Merging early access..." | |
| . ./build-scripts/merge-early-access.sh | |
| # - - - - - - - - - - | |
| # Clone the translations repos | |
| # - - - - - - - - - - | |
| # Make sure to clone each translation repo into the `translations` directory inside the root of docs-internal (the Dockerfile's WORKDIR) | |
| mkdir -p translations | |
| cd translations | |
| # Temporarily turn off exit-on-error so we can collect all PIDs | |
| set +e | |
| pids="" | |
| for lang in es-es ja-jp pt-br zh-cn ru-ru fr-fr ko-kr de-de; do | |
| clone_or_use_cached_repo "$lang" "docs-internal.$lang" "main" & | |
| pids="$pids $!" | |
| done | |
| failures=0 | |
| for pid in $pids; do | |
| wait "$pid" || failures=$((failures+1)) | |
| done | |
| # Restore strict mode | |
| set -e | |
| if [ "$failures" -gt 0 ]; then | |
| echo "⚠️ $failures translation repo(s) failed to fetch." | |
| exit 1 | |
| else | |
| echo "✅ All translations fetched." | |
| fi | |
| # Go back to the root of the docs-internal repo | |
| cd .. | |
| # - - - - - - - - - - | |
| # Cleanup | |
| # - - - - - - - - - - | |
| # Delete GITHUB_TOKEN from the environment | |
| unset GITHUB_TOKEN | |