Skip to content

Commit b882595

Browse files
committed
Merge branch 'gpu-snapshot' into gpu-ec2
2 parents 88bd7a4 + a710c4e commit b882595

File tree

8 files changed

+76
-51
lines changed

8 files changed

+76
-51
lines changed
Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#!/bin/bash
22

3-
set -euo pipefail
4-
53
if [[ -f /etc/profile.d/elastic-nvidia.sh ]]; then
64
export JAVA_HOME="$HOME/.java/openjdk24"
75
export PATH="$JAVA_HOME/bin:$PATH"
@@ -10,34 +8,35 @@ if [[ -f /etc/profile.d/elastic-nvidia.sh ]]; then
108

119
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}"
1210
source /etc/profile.d/elastic-nvidia.sh
13-
fi
14-
15-
# Not running this before the tests results in an error when running the tests
16-
# No idea why...
17-
nvidia-smi
1811

19-
CURRENT_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
20-
ELASTICSEARCH_REPO_DIR="$(cd "$CURRENT_SCRIPT_DIR/../../.." && pwd)"
21-
22-
CUVS_SNAPSHOT_VERSION="${CUVS_SNAPSHOT_VERSION:-$(cat "$CURRENT_SCRIPT_DIR"/current-snapshot-version)}"
23-
CUVS_ARCHIVE="cuvs-$CUVS_SNAPSHOT_VERSION.tar.gz"
24-
CUVS_URL="https://storage.googleapis.com/elasticsearch-cuvs-snapshots/$CUVS_ARCHIVE"
12+
# Not running this before the tests results in an error when running the tests
13+
# No idea why...
14+
if [[ "${BUILDKITE:-}" != "" && "${CI:-}" == "true" ]]; then
15+
nvidia-smi
16+
fi
17+
fi
2518

26-
CUVS_WORKSPACE=${CUVS_WORKSPACE:-$(cd "$(mktemp -d)")}
27-
CUVS_DIR="$(pwd)/cuvs-$CUVS_SNAPSHOT_VERSION"
19+
LIBCUVS_GCS_BUCKET="elasticsearch-cuvs-snapshots"
2820

29-
curl -O "$CUVS_URL"
30-
tar -xzf "$CUVS_ARCHIVE"
21+
LIBCUVS_DIR="/opt/libcuvs"
22+
mkdir -p "$LIBCUVS_DIR"
23+
chmod 777 "$LIBCUVS_DIR"
3124

32-
CUVS_VERSION=$(cd "$CUVS_DIR/cuvs-java/target" && mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
25+
CUVS_VERSION=$(grep 'cuvs_java' build-tools-internal/version.properties | awk '{print $3}')
3326

34-
LD_LIBRARY_PATH=$(echo "$LD_LIBRARY_PATH" | tr ':' '\n' | grep -v "libcuvs/linux-x64" | tr '\n' ':' | sed 's/:$//')
35-
LD_LIBRARY_PATH="$CUVS_DIR/libcuvs/linux-x64:$LD_LIBRARY_PATH"
36-
export LD_LIBRARY_PATH
27+
LIBCUVS_VERSION_DIR="$LIBCUVS_DIR/$CUVS_VERSION"
3728

38-
cd "$CUVS_DIR/cuvs-java/target"
39-
mvn install:install-file -Dfile="cuvs-java-$CUVS_VERSION.jar" -DartifactId=elastic-cuvs-java -DgeneratePom=true
29+
if [[ ! -d "$LIBCUVS_VERSION_DIR" ]]; then
30+
mkdir -p $LIBCUVS_VERSION_DIR
31+
cd "$LIBCUVS_VERSION_DIR"
32+
CUVS_ARCHIVE="libcuvs-$CUVS_VERSION.tar.gz"
33+
curl -fO "https://storage.googleapis.com/$LIBCUVS_GCS_BUCKET/libcuvs/$CUVS_ARCHIVE"
34+
tar -xzf "$CUVS_ARCHIVE"
35+
rm -f "$CUVS_ARCHIVE"
36+
if [[ -d "$CUVS_VERSION" ]]; then
37+
mv "$CUVS_VERSION/*" ./
38+
fi
39+
cd -
40+
fi
4041

41-
cd "$ELASTICSEARCH_REPO_DIR"
42-
PLUGIN_GRADLE_FILE=x-pack/plugin/gpu/build.gradle
43-
sed -i "s|implementation 'com.nvidia.cuvs:elastic-cuvs-java:.*'|implementation 'com.nvidia.cuvs:elastic-cuvs-java:$CUVS_VERSION'|" "$PLUGIN_GRADLE_FILE"
42+
export LD_LIBRARY_PATH="$LIBCUVS_VERSION_DIR:${LD_LIBRARY_PATH:-}"

.buildkite/scripts/cuvs-snapshot/current-snapshot-version

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import re
2+
3+
regex = re.compile(
4+
r'<component group="com.nvidia.cuvs" name="cuvs-.*?</component>\s*',
5+
re.MULTILINE | re.DOTALL,
6+
)
7+
8+
with open("gradle/verification-metadata.xml", "r+") as f:
9+
text = f.read()
10+
text = regex.sub("", text)
11+
f.seek(0)
12+
f.truncate()
13+
f.write(text)

.buildkite/scripts/cuvs-snapshot/update-current-snapshot-version.sh

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,35 @@
22

33
set -euo pipefail
44

5-
SNAPSHOT_VERSION_FILE=.buildkite/scripts/cuvs-snapshot/current-snapshot-version
6-
BRANCH_TO_UPDATE="${BRANCH_TO_UPDATE:-${BUILDKITE_BRANCH:-cuvs-snapshot}}"
5+
echo "--- Updating cuvs-java version"
76

8-
if [[ -z "${CUVS_SNAPSHOT_VERSION:-}" ]]; then
9-
echo "CUVS_SNAPSHOT_VERSION not set. Set this to update the current snapshot version."
10-
exit 1
11-
fi
7+
git checkout "$BUILDKITE_BRANCH"
8+
git pull --ff-only origin "$BUILDKITE_BRANCH"
129

13-
if [[ "$CUVS_SNAPSHOT_VERSION" == "$(cat $SNAPSHOT_VERSION_FILE)" ]]; then
14-
echo "Current snapshot version already set to '$CUVS_SNAPSHOT_VERSION'. No need to update."
15-
exit 0
16-
fi
10+
# Replace `cuvs_java = <version>` string in version.properties and maintain the same indentation
11+
sed -E "s/^(cuvs_java *= *[^ ]* *).*\$/\1$CUVS_JAVA_VERSION/" build-tools-internal/version.properties > new-version.properties
12+
mv new-version.properties build-tools-internal/version.properties
1713

18-
echo "--- Configuring libcuvs/cuvs-java"
19-
source .buildkite/scripts/cuvs-snapshot/configure.sh
14+
python3 .buildkite/scripts/lucene-snapshot/remove-verification-metadata.py
15+
./gradlew --write-verification-metadata sha256
2016

2117
if [[ "${SKIP_TESTING:-}" != "true" ]]; then
22-
echo "--- Testing snapshot before updating"
18+
echo "--- Testing cuvs-java before committing"
2319
./gradlew -Druntime.java=24 :x-pack:plugin:gpu:yamlRestTest -S
2420
fi
2521

26-
echo "--- Updating snapshot"
22+
if git diff-index --quiet HEAD --; then
23+
echo 'No changes to commit.'
24+
exit 0
25+
fi
26+
27+
echo "--- Committing changes"
2728

28-
echo "$CUVS_SNAPSHOT_VERSION" > "$SNAPSHOT_VERSION_FILE"
29+
git config --global user.name elasticsearchmachine
30+
git config --global user.email '[email protected]'
2931

30-
CURRENT_SHA="$(gh api "/repos/elastic/elasticsearch/contents/$SNAPSHOT_VERSION_FILE?ref=$BRANCH_TO_UPDATE" | jq -r .sha)" || true
32+
git add build-tools-internal/version.properties
33+
git add gradle/verification-metadata.xml
3134

32-
gh api -X PUT "/repos/elastic/elasticsearch/contents/$SNAPSHOT_VERSION_FILE" \
33-
-f branch="$BRANCH_TO_UPDATE" \
34-
-f message="Update cuvs snapshot version to $CUVS_VERSION" \
35-
-f content="$(base64 -w 0 "$WORKSPACE/$SNAPSHOT_VERSION_FILE")" \
36-
-f sha="$CURRENT_SHA"
35+
git commit -m "[Automated] Update cuvs-java to $CUVS_JAVA_VERSION"
36+
git push origin "$BUILDKITE_BRANCH"

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/RepositoriesSetupPlugin.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
public class RepositoriesSetupPlugin implements Plugin<Project> {
2323

2424
private static final Pattern LUCENE_SNAPSHOT_REGEX = Pattern.compile("\\w+-snapshot-([a-z0-9]+)");
25+
private static final Pattern CUVS_SNAPSHOT_REGEX = Pattern.compile("([0-9\\.]+-[a-z0-9]+)-SNAPSHOT");
2526

2627
@Override
2728
public void apply(Project project) {
@@ -60,5 +61,17 @@ public static void configureRepositories(Project project) {
6061
exclusiveRepo.forRepositories(luceneRepo);
6162
});
6263
}
64+
65+
String cuvsVersion = VersionProperties.getVersions().get("cuvs_java");
66+
if (cuvsVersion.contains("-SNAPSHOT")) {
67+
MavenArtifactRepository cuvsRepo = repos.maven(repo -> {
68+
repo.setName("cuvs-snapshots");
69+
repo.setUrl("https://storage.googleapis.com/elasticsearch-cuvs-snapshots");
70+
});
71+
repos.exclusiveContent(exclusiveRepo -> {
72+
exclusiveRepo.filter(descriptor -> descriptor.includeVersionByRegex("com\\.nvidia\\.cuvs", ".*", ".*-SNAPSHOT"));
73+
exclusiveRepo.forRepositories(cuvsRepo);
74+
});
75+
}
6376
}
6477
}

build-tools-internal/version.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ commons_lang3 = 3.9
1919
google_oauth_client = 1.34.1
2020
awsv2sdk = 2.31.78
2121
reactive_streams = 1.0.4
22-
ldapsdk = 7.0.3
22+
cuvs_java = 25.10.0
23+
ldapsdk = 7.0.3
2324

2425
antlr4 = 4.13.1
2526
# bouncy castle version for non-fips. fips jars use a different version

libs/gpu-codec/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ dependencies {
1616
api project(':libs:logging')
1717
compileOnly "org.apache.lucene:lucene-core:${versions.lucene}"
1818
compileOnly project(':server')
19-
implementation('com.nvidia.cuvs:cuvs-java:25.10.0')
19+
implementation("com.nvidia.cuvs:cuvs-java:${versions.cuvs_java}")
2020

2121
testImplementation(project(":test:framework")) {
2222
exclude group: 'org.elasticsearch', module: 'gpu-codec'

x-pack/plugin/gpu/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies {
2020
testImplementation(testArtifact(project(xpackModule('core'))))
2121
testImplementation(testArtifact(project(':server')))
2222
yamlRestTestImplementation project(':libs:gpu-codec')
23-
internalClusterTestImplementation('com.nvidia.cuvs:cuvs-java:25.10.0')
23+
internalClusterTestImplementation("com.nvidia.cuvs:cuvs-java:${versions.cuvs_java}")
2424

2525
clusterModules project(xpackModule('gpu'))
2626
}

0 commit comments

Comments
 (0)