1#!/usr/bin/env bash 2set -e 3set -x 4 5FAKE_BCR_ROOT=$(mktemp -d --tmpdir fake-bcr.XXX) 6FAKE_RULES_JAVA_ROOT=${FAKE_BCR_ROOT}/modules/rules_java 7FAKE_MODULE_VERSION=9999 8FAKE_MODULE_ROOT=${FAKE_RULES_JAVA_ROOT}/${FAKE_MODULE_VERSION} 9FAKE_ARCHIVE=${FAKE_MODULE_ROOT}/rules_java.tar.gz 10mkdir -p ${FAKE_MODULE_ROOT} 11 12# relying on the line number is not great, but :shrugs: 13sed -e "3 c version = \"${FAKE_MODULE_VERSION}\"," ../MODULE.bazel > ${FAKE_MODULE_ROOT}/MODULE.bazel 14 15tar zcf ${FAKE_ARCHIVE} ../ 16RULES_JAVA_INTEGRITY_SHA256=`cat ${FAKE_ARCHIVE} | openssl dgst -sha256 -binary | base64` 17cat << EOF > ${FAKE_MODULE_ROOT}/source.json 18{ 19 "integrity": "sha256-${RULES_JAVA_INTEGRITY_SHA256}", 20 "strip_prefix": "", 21 "url": "file://${FAKE_ARCHIVE}" 22} 23EOF 24 25# fetch and setup bazel sources 26git init 27git remote add origin https://github.com/bazelbuild/bazel.git 28git pull origin master 29sed -i.bak -e 's/^# android_sdk_repository/android_sdk_repository/' \ 30 -e 's/^# android_ndk_repository/android_ndk_repository/' \ 31 WORKSPACE.bzlmod 32rm -f WORKSPACE.bzlmod.bak 33rm -rf $HOME/bazeltest 34mkdir $HOME/bazeltest 35 36echo "common --registry=https://bcr.bazel.build" >> .bazelrc 37echo "common --registry=file://${FAKE_BCR_ROOT}" >> .bazelrc 38echo "add_to_bazelrc \"common --registry=https://bcr.bazel.build\"" >> src/test/shell/testenv.sh.tmpl 39echo "add_to_bazelrc \"common --registry=file://${FAKE_BCR_ROOT}\"" >> src/test/shell/testenv.sh.tmpl 40 41SED_CMD="s/bazel_dep(name = \"rules_java\".*/bazel_dep(name = \"rules_java\", version = \"${FAKE_MODULE_VERSION}\")/" 42sed -i "${SED_CMD}" MODULE.bazel 43sed -i "${SED_CMD}" src/MODULE.tools 44 45BAZEL_QUIET_MODE_ARGS="--ui_event_filters=error,fail" 46 47bazel run ${BAZEL_QUIET_MODE_ARGS} //src/test/tools/bzlmod:update_default_lock_file -- \ 48 --registry="https://bcr.bazel.build" --registry="file://${FAKE_BCR_ROOT}" ${BAZEL_QUIET_MODE_ARGS} 49bazel mod deps --lockfile_mode=update 50# populate repo cache so tests don't need to access network 51bazel fetch --config=ci-linux --all ${BAZEL_QUIET_MODE_ARGS} 52