Adapt for 3.11.0
Includes:
- Bump default Java version to 21
- Bump Bazel version to 7.2.1
- Bump Gerrit Docker image to 3.11.0-ubuntu24
- Bump eslint and rollup versions to match 3.11 core
- Bump node version to match 3.11 core (20.14.0)
Starting in 3.11, Gerrit does not provide direct push permissions to
admin accounts by default. This breaks the plugin tests. Fix this by
updating the docker setup to add additional Gerrit access permissions.
Also, the 3.11 gerrit docker image uses UID/GID 1001, so update our test
container to use the same so that we can continue reading the
ssh_host_rsa_key generated by the server.
Release-Notes: Support Gerrit v3.11
Change-Id: I10417e1d73a5995ee45dbb7f9fb232944874020d
diff --git a/.bazelrc b/.bazelrc
index dfac39b..b28d604 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -2,10 +2,10 @@
# https://issues.gerritcodereview.com/issues/303819949
common --noenable_bzlmod
-build --java_language_version=17
-build --java_runtime_version=remotejdk_17
-build --tool_java_language_version=17
-build --tool_java_runtime_version=remotejdk_17
+build --java_language_version=21
+build --java_runtime_version=remotejdk_21
+build --tool_java_language_version=21
+build --tool_java_runtime_version=remotejdk_21
build --workspace_status_command="python3 ./tools/workspace_status.py"
build --repository_cache=~/.gerritcodereview/bazel-cache/repository
diff --git a/.bazelversion b/.bazelversion
index 4122521..b26a34e 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-7.0.0
\ No newline at end of file
+7.2.1
diff --git a/WORKSPACE b/WORKSPACE
index 3b3f4f9..5bff35a 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -5,7 +5,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "cc68cb5ffdab500e36674cb7558911b180ea61c3",
+ commit = "7ed39252845169ef23a7561b6b429e31a3abfb67",
#local_path = "/home/<user>/projects/bazlets",
)
@@ -24,7 +24,7 @@
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install")
node_repositories(
- node_version = "20.9.0",
+ node_version = "20.14.0",
yarn_version = "1.22.19",
)
diff --git a/package.json b/package.json
index d13161c..5b39f0a 100644
--- a/package.json
+++ b/package.json
@@ -1,18 +1,18 @@
{
"name": "task",
- "version": "3.10.0-SNAPSHOT",
+ "version": "3.11.0-SNAPSHOT",
"description": "Task Plugin",
"dependencies": {
"@bazel/rollup": "^5.8.1",
"@bazel/terser": "^5.8.1"
},
"devDependencies": {
- "eslint": "^8.57.0",
+ "eslint": "^8.57.1",
"eslint-config-google": "^0.14.0",
"eslint-plugin-html": "^7.1.0",
- "eslint-plugin-import": "^2.29.1",
+ "eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsdoc": "^44.2.7",
- "rollup": "^2.79.1",
+ "rollup": "^2.79.2",
"terser": "~5.8.0"
},
"scripts": {
diff --git a/test/docker/gerrit/Dockerfile b/test/docker/gerrit/Dockerfile
index c52439f..e1366c2 100755
--- a/test/docker/gerrit/Dockerfile
+++ b/test/docker/gerrit/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.10.0-ubuntu22
+FROM gerritcodereview/gerrit:3.11.0-ubuntu24
ENV GERRIT_SITE=/var/gerrit
RUN rm -rf "$GERRIT_SITE/plugins" && mkdir "$GERRIT_SITE/plugins"
diff --git a/test/docker/run_tests/Dockerfile b/test/docker/run_tests/Dockerfile
index c4a68c6..ff30e70 100755
--- a/test/docker/run_tests/Dockerfile
+++ b/test/docker/run_tests/Dockerfile
@@ -1,7 +1,7 @@
FROM alpine:3.16
-ARG UID=1000
-ARG GID=1000
+ARG UID=1001
+ARG GID=1001
ENV USER admin
ENV USER_HOME /home/$USER
ENV RUN_TESTS_DIR task/test/docker/run_tests
diff --git a/test/docker/run_tests/add_gerrit_access_permissions.sh b/test/docker/run_tests/add_gerrit_access_permissions.sh
new file mode 100755
index 0000000..b78561e
--- /dev/null
+++ b/test/docker/run_tests/add_gerrit_access_permissions.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+GROUP_ID_ADMINISTRATORS=$(curl --no-progress-meter --netrc -X GET \
+ "http://$GERRIT_HOST:8080/a/groups/Administrators" | \
+ sed -e '1!b' -e "/^)]}'$/d" | jq -r '.id')
+curl --no-progress-meter --netrc -X POST \
+ "http://$GERRIT_HOST:8080/a/projects/All-Projects/access" \
+ --header 'Content-Type: application/json' --output /dev/null \
+ --data @<(cat <<EOF
+{
+ "add": {
+ "refs/*": {
+ "permissions": {
+ "push": {
+ "rules": {
+ "$GROUP_ID_ADMINISTRATORS": {
+ "action": "ALLOW"
+ }
+ }
+ }
+ }
+ }
+ }
+}
+EOF
+)
diff --git a/test/docker/run_tests/start.sh b/test/docker/run_tests/start.sh
index 1abbd7e..8ed0f3b 100755
--- a/test/docker/run_tests/start.sh
+++ b/test/docker/run_tests/start.sh
@@ -46,6 +46,8 @@
is_plugin_loaded "task" || die "Task plugin is not installed"
is_plugin_loaded "names-factory-provider" || die "names-factory-provider plugin is not installed"
+"$USER_RUN_TESTS_DIR"/add_gerrit_access_permissions.sh
+
NON_SECRET_USER="non_secret_user"
UNTRUSTED_USER="untrusted_user"
GROUP_NAME_WITHOUT_SPACE="test.group"
diff --git a/yarn.lock b/yarn.lock
index 22e577e..da9732b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -726,7 +726,7 @@
dependencies:
htmlparser2 "^8.0.1"
-eslint-plugin-import@^2.29.1:
+eslint-plugin-import@^2.31.0:
version "2.31.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7"
integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==
@@ -778,7 +778,7 @@
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint@^8.57.0:
+eslint@^8.57.1:
version "8.57.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9"
integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
@@ -1857,10 +1857,10 @@
dependencies:
glob "^7.1.3"
-rollup@^2.79.1:
- version "2.79.1"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
- integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
+rollup@^2.79.2:
+ version "2.79.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090"
+ integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==
optionalDependencies:
fsevents "~2.3.2"