Skip to content

Commit

Permalink
Attempt to fix Bzlmod java tools override
Browse files Browse the repository at this point in the history
  • Loading branch information
fmeum committed Nov 24, 2023
1 parent 54d5bb5 commit e54ae09
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 55 deletions.
9 changes: 9 additions & 0 deletions src/test/shell/bazel/BUILD
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
load("//:workspace_deps.bzl", "gen_workspace_stanza")
load("//src/tools/bzlmod:utils.bzl", "get_canonical_repo_name")
load("@bazel_skylib//rules:write_file.bzl", "write_file")

package(default_visibility = ["//visibility:private"])

Expand Down Expand Up @@ -254,6 +256,12 @@ JAVA_VERSIONS = ("11", "17")

JAVA_VERSIONS_COVERAGE = ("11", "17")

write_file(
name = "gen_rules_java_repo_name",
out = "RULES_JAVA_REPO_NAME",
content = [get_canonical_repo_name("@rules_java")],
)

[
sh_test(
name = "bazel_java_test_jdk" + java_version + "_toolchain_head",
Expand All @@ -270,6 +278,7 @@ JAVA_VERSIONS_COVERAGE = ("11", "17")
java_version,
],
data = [
":gen_rules_java_repo_name",
":test-deps",
"//src:java_tools_prebuilt_zip",
"//src:java_tools_zip",
Expand Down
76 changes: 21 additions & 55 deletions src/test/shell/bazel/bazel_java_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,35 +59,33 @@ JAVA_TOOLCHAIN="@bazel_tools//tools/jdk:toolchain"

JAVA_TOOLCHAIN_TYPE="@bazel_tools//tools/jdk:toolchain_type"

RULES_JAVA_REPO_NAME=$(cat "$(rlocation io_bazel/src/test/shell/bazel/RULES_JAVA_REPO_NAME)")
echo "RULES_JAVA_REPO_NAME=${RULES_JAVA_REPO_NAME}"
JAVA_TOOLS_REPO_PREFIX="${RULES_JAVA_REPO_NAME}~toolchains~"
echo "JAVA_TOOLS_REPO_PREFIX=${JAVA_TOOLS_REPO_PREFIX}"

JAVA_TOOLS_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_ZIP}" != "released" ]]; then
if [[ "${JAVA_TOOLS_ZIP}" == file* ]]; then
JAVA_TOOLS_ZIP_FILE_URL="${JAVA_TOOLS_ZIP}"
elif "$is_windows"; then
JAVA_TOOLS_ZIP_FILE_URL="file:///$(rlocation io_bazel/$JAVA_TOOLS_ZIP)"
else
JAVA_TOOLS_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_ZIP)"
fi
JAVA_TOOLS_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_ZIP}")"
echo "JAVA_TOOLS_ZIP_FILE=${JAVA_TOOLS_ZIP_FILE}"
# Unzip the java_tools zip file to a temporary directory.
JAVA_TOOLS_DIR="$TEST_TMPDIR/_java_tools"
echo "JAVA_TOOLS_DIR=${JAVA_TOOLS_DIR}"
unzip -q "${JAVA_TOOLS_ZIP_FILE}" -d "$JAVA_TOOLS_DIR"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}~remote_java_tools=${JAVA_TOOLS_DIR}"
fi
JAVA_TOOLS_ZIP_FILE_URL=${JAVA_TOOLS_ZIP_FILE_URL:-}

JAVA_TOOLS_PREBUILT_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" != "released" ]]; then
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" == file* ]]; then
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="${JAVA_TOOLS_PREBUILT_ZIP}"
elif "$is_windows"; then
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file:///$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
else
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
fi
# Remove the repo overrides that are set up for some Bazel CI workers.
inplace-sed "/override_repository=remote_java_tools=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_linux=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_windows=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_darwin_x86_64=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_darwin_arm64=/d" "$TEST_TMPDIR/bazelrc"
JAVA_TOOLS_PREBUILT_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_PREBUILT_ZIP}")"
# Unzip the java_tools_prebuilt zip file to a temporary directory.
JAVA_TOOLS_PREBUILT_DIR="$TEST_TMPDIR/_java_tools_prebuilt"
unzip -q "${JAVA_TOOLS_PREBUILT_ZIP_FILE}" -d "$JAVA_TOOLS_PREBUILT_DIR"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}~remote_java_tools_linux=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}~remote_java_tools_windows=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}~remote_java_tools_darwin_x86_64=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}~remote_java_tools_arm64=${JAVA_TOOLS_PREBUILT_DIR}"
fi
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL=${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL:-}

if [[ $# -gt 0 ]]; then
JAVA_LANGUAGE_VERSION="$1"; shift
Expand All @@ -111,38 +109,6 @@ fi

export TESTENV_DONT_BAZEL_CLEAN=1

function set_up() {
cat >>WORKSPACE <<EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# java_tools versions only used to test Bazel with various JDK toolchains.
EOF

if [[ ! -z "${JAVA_TOOLS_ZIP_FILE_URL}" ]]; then
cat >>WORKSPACE <<EOF
http_archive(
name = "remote_java_tools",
urls = ["${JAVA_TOOLS_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_linux",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_windows",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_x86_64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_arm64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
EOF
fi
}

function tear_down() {
rm -rf "$(bazel info bazel-bin)/java"
}
Expand Down Expand Up @@ -1978,7 +1944,7 @@ EOF
public class B {}
EOF

bazel build //pkg:a >& $TEST_log || fail "build failed"
bazel build //pkg:a --verbose_failures --announce_rc >& $TEST_log || fail "build failed"
}

run_suite "Java integration tests"

0 comments on commit e54ae09

Please sign in to comment.