Browse Source

v1.17: ci: add the ability to use GCS backend for sccache (backport of #33967) (#33984)

ci: add the ability to use GCS backend for sccache (#33967)

(cherry picked from commit 5efba1fb3a9fc6653c7c17142df1283747688889)

Co-authored-by: Yihau Chen <a122092487@gmail.com>
mergify[bot] 2 years ago
parent
commit
99e83102d1
2 changed files with 31 additions and 7 deletions
  1. 7 1
      .buildkite/hooks/pre-command
  2. 24 6
      ci/docker-run.sh

+ 7 - 1
.buildkite/hooks/pre-command

@@ -28,5 +28,11 @@ fi
 
 
 export SBF_TOOLS_VERSION
 export SBF_TOOLS_VERSION
 
 
-SCCACHE_S3_KEY_PREFIX="${rust_stable}_${rust_nightly}_${SBF_TOOLS_VERSION}"
+SCCACHE_KEY_PREFIX="${rust_stable}_${rust_nightly}_${SBF_TOOLS_VERSION}"
+export SCCACHE_KEY_PREFIX
+
+SCCACHE_S3_KEY_PREFIX="$SCCACHE_KEY_PREFIX"
 export SCCACHE_S3_KEY_PREFIX
 export SCCACHE_S3_KEY_PREFIX
+
+SCCACHE_GCS_KEY_PREFIX="$SCCACHE_KEY_PREFIX"
+export SCCACHE_GCS_KEY_PREFIX

+ 24 - 6
ci/docker-run.sh

@@ -54,16 +54,34 @@ if [[ -n $CI ]]; then
       # sccache-related bugs
       # sccache-related bugs
       echo "--- $0 ... (with sccache being DISABLED due to many (${BUILDKITE_RETRY_COUNT}) retries)"
       echo "--- $0 ... (with sccache being DISABLED due to many (${BUILDKITE_RETRY_COUNT}) retries)"
     else
     else
-      echo "--- $0 ... (with sccache enabled with prefix: $SCCACHE_S3_KEY_PREFIX)"
+      echo "--- $0 ... (with sccache enabled with prefix: $SCCACHE_KEY_PREFIX)"
+
       # sccache
       # sccache
       ARGS+=(
       ARGS+=(
         --env "RUSTC_WRAPPER=/usr/local/cargo/bin/sccache"
         --env "RUSTC_WRAPPER=/usr/local/cargo/bin/sccache"
-        --env AWS_ACCESS_KEY_ID
-        --env AWS_SECRET_ACCESS_KEY
-        --env SCCACHE_BUCKET
-        --env SCCACHE_REGION
-        --env SCCACHE_S3_KEY_PREFIX
       )
       )
+
+      # s3
+      if [ -n "$AWS_ACCESS_KEY_ID" ]; then
+        ARGS+=(
+          --env AWS_ACCESS_KEY_ID
+          --env AWS_SECRET_ACCESS_KEY
+          --env SCCACHE_BUCKET
+          --env SCCACHE_REGION
+          --env SCCACHE_S3_KEY_PREFIX
+        )
+      fi
+
+      # gcs
+      if [ -n "$SCCACHE_GCS_KEY_PATH" ]; then
+        ARGS+=(
+          --env SCCACHE_GCS_KEY_PATH
+          --volume "$SCCACHE_GCS_KEY_PATH:$SCCACHE_GCS_KEY_PATH"
+          --env SCCACHE_GCS_BUCKET
+          --env SCCACHE_GCS_RW_MODE
+          --env SCCACHE_GCS_KEY_PREFIX
+        )
+      fi
     fi
     fi
   fi
   fi
 else
 else