diff --git a/hack/jenkins/upload-to-gcs.sh b/hack/jenkins/upload-to-gcs.sh index 5c099dbde28..ab7df7666be 100755 --- a/hack/jenkins/upload-to-gcs.sh +++ b/hack/jenkins/upload-to-gcs.sh @@ -46,8 +46,31 @@ if [[ ! ${JENKINS_UPLOAD_TO_GCS:-y} =~ ^[yY]$ ]]; then exit 0 fi +# Attempt to determine if we're running against a repo other than +# kubernetes/kubernetes to determine whether to place PR logs in a different +# location. +# +# In the current CI system, the tracked repo is named remote. This is not true +# in general for most devs, where origin and upstream are more common. +GCS_SUBDIR="" +readonly remote_git_repo=$(git config --get remote.remote.url | sed 's:.*github.com/::' || true) +if [[ -n "${remote_git_repo}" ]]; then + case "${remote_git_repo}" in + # main repo: nothing extra + kubernetes/kubernetes) GCS_SUBDIR="" ;; + # a different repo on the k8s org: just the repo name (strip kubernetes/) + kubernetes/*) GCS_SUBDIR="${remote_git_repo#kubernetes/}/" ;; + # any other repo: ${org}_${repo} (replace / with _) + *) GCS_SUBDIR="${remote_git_repo/\//_}/" ;; + esac + if [[ "${remote_git_repo}" != "kubernetes/kubernetes" ]]; then + # also store the repo in started.json, so Gubernator can link it properly. + export BUILD_METADATA_REPO="${remote_git_repo}" + fi +fi + if [[ ${JOB_NAME} =~ -pull- ]]; then - : ${JENKINS_GCS_LOGS_PATH:="gs://kubernetes-jenkins/pr-logs/pull/${ghprbPullId:-unknown}"} + : ${JENKINS_GCS_LOGS_PATH:="gs://kubernetes-jenkins/pr-logs/pull/${GCS_SUBDIR}${ghprbPullId:-unknown}"} : ${JENKINS_GCS_LATEST_PATH:="gs://kubernetes-jenkins/pr-logs/directory"} : ${JENKINS_GCS_LOGS_INDIRECT:="gs://kubernetes-jenkins/pr-logs/directory/${JOB_NAME}"} else