about summary refs log tree commit diff
path: root/src/ci/scripts
diff options
context:
space:
mode:
authoronur-ozkan <work@onurozkan.dev>2024-10-12 07:41:39 +0300
committeronur-ozkan <work@onurozkan.dev>2024-10-12 08:58:39 +0300
commit4454fa998c9da1f1eee1602c8e8cd2732505c104 (patch)
tree3a73cce3d0f13506f7b5d000308f3022932d6946 /src/ci/scripts
parent33ac202904e7820268b71b3280a7d2590378e3b9 (diff)
add new CI step: "setup upstream remote"
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Diffstat (limited to 'src/ci/scripts')
-rwxr-xr-xsrc/ci/scripts/setup-upstream-remote.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/ci/scripts/setup-upstream-remote.sh b/src/ci/scripts/setup-upstream-remote.sh
new file mode 100755
index 00000000000..52b4c98a890
--- /dev/null
+++ b/src/ci/scripts/setup-upstream-remote.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# In CI environments, bootstrap is forced to use the remote upstream based
+# on "git_repository" and "nightly_branch" values from src/stage0 file.
+# This script configures the remote as it may not exist by default.
+
+set -euo pipefail
+IFS=$'\n\t'
+
+ci_dir=$(cd $(dirname $0) && pwd)/..
+source "$ci_dir/shared.sh"
+
+git_repository=$(parse_stage0_file_by_key "git_repository")
+nightly_branch=$(parse_stage0_file_by_key "nightly_branch")
+
+# Configure "rust-lang/rust" upstream remote only when it's not origin.
+if [ -z "$(git config remote.origin.url | grep $git_repository)" ]; then
+    echo "Configuring https://github.com/$git_repository remote as upstream."
+    git remote add upstream "https://github.com/$git_repository"
+    REMOTE_NAME="upstream"
+else
+    REMOTE_NAME="origin"
+fi
+
+git fetch $REMOTE_NAME $nightly_branch