Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.

Support Bazel 6.0.0 #318

Merged
merged 3 commits into from
Jan 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.4.0
6.0.0
80 changes: 21 additions & 59 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,72 +25,34 @@ jobs:
- name: Build installer
run: bazel build //server/src/main/java/org/jetbrains/bsp/bazel:bsp-install

sample-repo-test:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache bazel
uses: actions/cache@v2
env:
cache-name: cache-bazel
with:
path: ~/.cache/bazel
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Run test
run: bazel run //e2e:BazelBspSampleRepoTest

local-jdk-test:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache bazel
uses: actions/cache@v2
env:
cache-name: cache-bazel
with:
path: ~/.cache/bazel
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Run test
run: bazel run //e2e:BazelBspLocalJdkTest

remote-jdk-test:
integration-test:
runs-on: ubuntu-latest
needs: setup
strategy:
matrix:
bazel_version: ["5.4.0", "6.0.0"]
test_target: ["//e2e:BazelBspSampleRepoTest", "//e2e:BazelBspLocalJdkTest", "//e2e:BazelBspRemoteJdkTest", "//e2e:BazelBspCppProjectTest"]
include:
- test_name: sample-repo-test
test_target: //e2e:BazelBspSampleRepoTest
java_version: 11
- test_name: local-jdk-test
test_target: //e2e:BazelBspLocalJdkTest
java_version: 17
- test_name: remote-jdk-test
test_target: //e2e:BazelBspRemoteJdkTest
java_version: 17
- test_name: cpp-project-test
test_target: //e2e:BazelBspCppProjectTest
java_version: 11
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
- name: Set up JDK ${{ matrix.java_version }}
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache bazel
uses: actions/cache@v2
env:
cache-name: cache-bazel
with:
path: ~/.cache/bazel
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Run test
run: bazel run //e2e:BazelBspRemoteJdkTest

cpp-project-test:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
java-version: ${{ matrix.java_version }}
- name: Cache bazel
uses: actions/cache@v2
env:
Expand All @@ -99,4 +61,4 @@ jobs:
path: ~/.cache/bazel
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Run test
run: bazel run //e2e:BazelBspCppProjectTest
run: USE_BAZEL_VERSION=${{ matrix.bazel_version }} bazel run ${{ matrix.test_target }}
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@


## [Unreleased]
- Support Bazel 6.0.0
| [#318](https://github.com/JetBrains/bazel-bsp/pull/318)

## [2.3.1] - 21.12.2022

Expand Down
4 changes: 2 additions & 2 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ http_archive(
# ======================================================================================================================
# kotlin

IO_BAZEL_KOTLIN_RULES_TAG = "v1.6.0"
IO_BAZEL_KOTLIN_RULES_TAG = "v1.7.0"

IO_BAZEL_KOTLIN_RULES_SHA = "a57591404423a52bd6b18ebba7979e8cd2243534736c5c94d35c89718ea38f94"
IO_BAZEL_KOTLIN_RULES_SHA = "15afe2d727f0dba572e0ce58f1dac20aec1441422ca65f7c3f7671b47fd483bf"

http_archive(
name = "io_bazel_rules_kotlin",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,31 @@
package org.jetbrains.bsp.bazel.bazelrunner

import java.lang.RuntimeException
import java.nio.file.Path

interface BazelInfo {
val execRoot: String
val workspaceRoot: Path
val release: BazelRelease
}


data class BazelRelease(
val versionString: String
) {
val major: Int by lazy {
"""(?<=release )\d+(?=[0-9.]*)""".toRegex().find(versionString)?.value?.toInt()!!
}

fun mainRepositoryReferencePrefix() = when(major) {
in 0..3 -> throw RuntimeException("Unsupported Bazel version, use Bazel 4 or newer")
in 4..5 -> "//"
else -> "@//"
}
abrams27 marked this conversation as resolved.
Show resolved Hide resolved
}
data class BasicBazelInfo(
override val execRoot: String,
override val workspaceRoot: Path
override val workspaceRoot: Path,
override val release: BazelRelease
) : BazelInfo


Expand All @@ -21,5 +36,7 @@ class LazyBazelInfo(bazelInfoSupplier: () -> BazelInfo) : BazelInfo {
get() = bazelInfo.execRoot
override val workspaceRoot: Path
get() = bazelInfo.workspaceRoot
override val release: BazelRelease
get() = bazelInfo.release

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ class BazelInfoResolver(

return BasicBazelInfo(
execRoot = extract("execution_root"),
workspaceRoot = Paths.get(extract("workspace"))
workspaceRoot = Paths.get(extract("workspace")),
release = BazelRelease(extract("release"))
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.jetbrains.bsp.bazel.bazelrunner

import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test

class BazelReleaseTest {
@Test
fun oldBazel(){
val release = BazelRelease("release 4.0.0")
assertThat(release.major).isEqualTo(4)
assertThat(release.mainRepositoryReferencePrefix()).isEqualTo("//")
}

@Test
fun newBazel(){
val release = BazelRelease("release 6.0.0")
assertThat(release.major).isEqualTo(6)
assertThat(release.mainRepositoryReferencePrefix()).isEqualTo("@//")
}

@Test
fun newBazelUnofficial(){
val release = BazelRelease("release 6.0.0-pre20230102")
assertThat(release.major).isEqualTo(6)
}

@Test
fun newBuazelMutliDigit(){
val release = BazelRelease("release 16.0.0")
assertThat(release.major).isEqualTo(16)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ class ProjectStorageTest {

val bazelInfo = BasicBazelInfo(
"/private/var/tmp/_bazel/125c7a6ca879ed16a4b4b1a74bc5f27b/execroot/bazel_bsp",
Paths.get("/Users/user/workspace/bazel-bsp"))
Paths.get("/Users/user/workspace/bazel-bsp"),
BazelRelease("6.0.0"))


storage.store(bazelInfo)
val loaded = storage.load()
Expand Down
4 changes: 2 additions & 2 deletions e2e/runTest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ cd "$BUILD_WORKSPACE_DIRECTORY" || exit
bazel build //server/src/main/java/org/jetbrains/bsp/bazel:bsp-install
EXECUTION_CODE=$?
if [ $EXECUTION_CODE -ne 0 ]; then
echo -e "${RED}building failed :("
echo -e "${RED}building failed :(${NC}"
exit 1
fi

Expand Down Expand Up @@ -60,7 +60,7 @@ foo1=invalid_val1 foo2=invalid_val2 foo3=val3 foo4=val4 BSP_WORKSPACE="$BSP_ROOT
EXECUTION_CODE=$?

if [ $EXECUTION_CODE -ne 0 ]; then
echo -e "${RED}'$TEST_TARGET' test failed :("
echo -e "${RED}'$TEST_TARGET' test failed :(${NC}"
exit 1
fi

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ object BazelBspCppProjectTest : BazelBspTestBaseScenario() {

val exampleExampleBuildTarget =
BuildTarget(
BuildTargetIdentifier("//example:example"),
BuildTargetIdentifier("$targetPrefix//example:example"),
ImmutableList.of("application"),
ImmutableList.of(Constants.CPP),
ImmutableList.of(BuildTargetIdentifier("@com_google_googletest//:gtest_main")),
BuildTargetCapabilities(true, false, true)
)
exampleExampleBuildTarget.displayName = "//example:example"
exampleExampleBuildTarget.displayName = "$targetPrefix//example:example"
exampleExampleBuildTarget.baseDirectory = "file://\$WORKSPACE/example/"
exampleExampleBuildTarget.data = exampleExampleCppBuildTarget
exampleExampleBuildTarget.dataKind = BuildTargetDataKind.CPP
Expand All @@ -61,11 +61,11 @@ object BazelBspCppProjectTest : BazelBspTestBaseScenario() {

private fun cppOptions(): BazelBspTestScenarioStep {
val cppOptionsParams =
CppOptionsParams(ImmutableList.of(BuildTargetIdentifier("//example:example")))
CppOptionsParams(ImmutableList.of(BuildTargetIdentifier("$targetPrefix//example:example")))

val exampleExampleCppOptionsItem =
CppOptionsItem(
BuildTargetIdentifier("//example:example"),
BuildTargetIdentifier("$targetPrefix//example:example"),
ImmutableList.of("-Iexternal/gtest/include"),
ImmutableList.of("BOOST_FALLTHROUGH"),
ImmutableList.of("-pthread")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ object BazelBspLocalJdkTest : BazelBspTestBaseScenario() {
)

val exampleExampleBuildTarget = BuildTarget(
BuildTargetIdentifier("//example:example"),
BuildTargetIdentifier("$targetPrefix//example:example"),
listOf("application"),
listOf("java"),
emptyList(),
BuildTargetCapabilities(true, false, true, false)
)
exampleExampleBuildTarget.displayName = "//example:example"
exampleExampleBuildTarget.displayName = "$targetPrefix//example:example"
exampleExampleBuildTarget.baseDirectory = "file://\$WORKSPACE/example/"
exampleExampleBuildTarget.data = exampleExampleJvmBuildTarget
exampleExampleBuildTarget.dataKind = BuildTargetDataKind.JVM
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ object BazelBspRemoteJdkTest : BazelBspTestBaseScenario() {
)

val exampleExampleBuildTarget = BuildTarget(
BuildTargetIdentifier("//example:example"),
BuildTargetIdentifier("$targetPrefix//example:example"),
listOf("application"),
listOf("java"),
emptyList(),
BuildTargetCapabilities(true, false, true, false)
)
exampleExampleBuildTarget.displayName = "//example:example"
exampleExampleBuildTarget.displayName = "$targetPrefix//example:example"
exampleExampleBuildTarget.baseDirectory = "file://\$WORKSPACE/example/"
exampleExampleBuildTarget.data = exampleExampleJvmBuildTarget
exampleExampleBuildTarget.dataKind = BuildTargetDataKind.JVM
Expand Down
Loading