Skip to content

Commit e59c294

Browse files
authored
Improve efficiency of packer cache script (#94701) (#94703)
1 parent 27cdf00 commit e59c294

File tree

4 files changed

+19
-24
lines changed

4 files changed

+19
-24
lines changed

.ci/packer_cache.sh

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ SCRIPT="$0"
44

55
# SCRIPT might be an arbitrarily deep series of symbolic links; loop until we
66
# have the concrete path
7-
while [ -h "$SCRIPT" ] ; do
7+
while [ -h "$SCRIPT" ]; do
88
ls=$(ls -ld "$SCRIPT")
99
# Drop everything prior to ->
1010
link=$(expr "$ls" : '.*-> \(.*\)$')
11-
if expr "$link" : '/.*' > /dev/null; then
11+
if expr "$link" : '/.*' >/dev/null; then
1212
SCRIPT="$link"
1313
else
1414
SCRIPT=$(dirname "$SCRIPT")/"$link"
@@ -42,5 +42,13 @@ fi
4242

4343
## Gradle is able to resolve dependencies resolved with earlier gradle versions
4444
## therefore we run main _AFTER_ we run 6.8 which uses an earlier gradle version
45-
export JAVA_HOME="${HOME}"/.java/${ES_BUILD_JAVA}
46-
./gradlew --parallel clean -s resolveAllDependencies -Dorg.gradle.warning.mode=none -Drecurse.bwc=true
45+
branches=($(cat .ci/snapshotBwcVersions | sed '1d;$d' | grep -E -o "[0-9]+\.[0-9]+"))
46+
branches+=("main")
47+
for branch in "${branches[@]}"; do
48+
echo "Resolving dependencies for ${branch} branch"
49+
rm -rf checkout/$branch
50+
git clone --reference $(dirname "${SCRIPT}")/../.git https://github.com/elastic/elasticsearch.git --branch ${branch} --single-branch checkout/${branch}
51+
export JAVA_HOME="${HOME}"/.java/${ES_BUILD_JAVA}
52+
./checkout/${branch}/gradlew --project-dir ./checkout/${branch} --parallel clean -s resolveAllDependencies -Dorg.gradle.warning.mode=none
53+
rm -rf ./checkout/${branch}
54+
done

distribution/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,3 +604,8 @@ artifacts.add('log4jConfig', file("${defaultOutputs}/log4j2.properties")) {
604604
name 'log4j2.properties'
605605
builtBy 'buildDefaultLog4jConfig'
606606
}
607+
608+
tasks.named('resolveAllDependencies') {
609+
// We don't want to build all our distribution artifacts when priming our dependency cache
610+
configs = []
611+
}

distribution/bwc/build.gradle

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,3 @@
77
*/
88

99
apply plugin:"elasticsearch.internal-distribution-bwc-setup"
10-
11-
import org.elasticsearch.gradle.Version
12-
import org.elasticsearch.gradle.internal.info.BuildParams
13-
14-
15-
BuildParams.getBwcVersions().forPreviousUnreleased { unreleasedVersion ->
16-
project(unreleasedVersion.gradleProjectPath) {
17-
Version currentVersion = Version.fromString(version)
18-
TaskProvider<Task> resolveAllBwcDepsTaskProvider = bwcSetup.bwcTask("resolveAllBwcDependencies", {
19-
t -> t.args("resolveAllDependencies", "-Dorg.gradle.warning.mode=none")
20-
}, false)
21-
if (Boolean.getBoolean("recurse.bwc")) {
22-
// We only want to resolve dependencies for live versions of main, without cascading this to older versions
23-
tasks.named("resolveAllDependencies").configure {
24-
dependsOn(resolveAllBwcDepsTaskProvider)
25-
}
26-
}
27-
}
28-
}

distribution/docker/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,5 +550,6 @@ subprojects { Project subProject ->
550550

551551
tasks.named('resolveAllDependencies') {
552552
// Don't try and resolve filebeat or metricbeat snapshots as they may not always be available
553-
configs = configurations.matching { it.name.contains('beat') == false }
553+
// Also skip building Elasticsearch distributions
554+
configs = configurations.matching { it.name.contains('beat') == false && it.name.toLowerCase().contains('dockersource') == false }
554555
}

0 commit comments

Comments
 (0)