Skip to content

Commit 2e1d875

Browse files
committed
ci: look for arch-specific snapshots when necessary
1 parent db45b5e commit 2e1d875

File tree

1 file changed

+42
-33
lines changed

1 file changed

+42
-33
lines changed

.ci/docker-setup.sh

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,46 @@ set -e
66

77
VERSION_URL="https://raw.githubusercontent.com/elastic/logstash/master/ci/logstash_releases.json"
88

9+
download_and_load_docker_snapshot_artifact() {
10+
project="${1}"
11+
stack_version="${ELASTIC_STACK_VERSION}"
12+
case "${DISTRIBUTION}" in
13+
default) distribution_suffix="" ;; # default has no suffix
14+
*) distribution_suffix="${DISTRIBUTION/*/-}${DISTRIBUTION}" ;;
15+
esac
16+
17+
artifact_type="docker-image"
18+
artifact_name_base="${project}${distribution_suffix}-${stack_version}-${artifact_type}"
19+
echo "Downloading snapshot docker artifact: ${artifact_name_base}"
20+
21+
artifact_name_noarch="${artifact_name_base}.tar.gz"
22+
artifact_name_arch="${artifact_name_base}-x86_64.tar.gz"
23+
24+
jq_extract_artifact_url=".build.projects.\"${project}\".packages | (.\"${artifact_name_noarch}\" // .\"${artifact_name_arch}\") | .url"
25+
26+
artifact_list=$(curl --silent "https://artifacts-api.elastic.co/v1/versions/${stack_version}/builds/latest")
27+
artifact_url=$(echo "${artifact_list}" | jq --raw-output "${jq_extract_artifact_url}")
28+
29+
if [[ "${artifact_url}" == "null" ]]; then
30+
echo "Failed to find '${artifact_name_noarch}'"
31+
echo "Failed to find '${artifact_name_arch}'"
32+
echo "Listing:"
33+
echo "${artifact_list}" | jq --raw-output ".build.projects.\"${project}\".packages | keys | map(select(contains(\"${artifact_type}\")))"
34+
return 1
35+
fi
36+
37+
echo "${artifact_url}"
38+
39+
cd /tmp
40+
curl "${artifact_url}" > "${project}-docker-image.tar.gz"
41+
tar xfvz "${project}-docker-image.tar.gz" repositories
42+
echo "Loading ${project} docker image: "
43+
cat repositories
44+
docker load < "${project}-docker-image.tar.gz"
45+
rm "${project}-docker-image.tar.gz"
46+
cd -
47+
}
48+
949
if [ "$ELASTIC_STACK_VERSION" ]; then
1050
echo "Fetching versions from $VERSION_URL"
1151
VERSIONS=$(curl --silent $VERSION_URL)
@@ -23,43 +63,12 @@ if [ "$ELASTIC_STACK_VERSION" ]; then
2363
export ELASTIC_STACK_VERSION=$ELASTIC_STACK_RETRIEVED_VERSION
2464
fi
2565

26-
if [[ "$DISTRIBUTION" = "oss" ]]; then
27-
export DISTRIBUTION_SUFFIX="-oss"
28-
else
29-
export DISTRIBUTION_SUFFIX=""
30-
fi
31-
3266
echo "Testing against version: $ELASTIC_STACK_VERSION"
3367

3468
if [[ "$ELASTIC_STACK_VERSION" = *"-SNAPSHOT" ]]; then
35-
cd /tmp
36-
37-
jq=".build.projects.\"logstash\".packages.\"logstash$DISTRIBUTION_SUFFIX-$ELASTIC_STACK_VERSION-docker-image.tar.gz\".url"
38-
result=$(curl --silent https://artifacts-api.elastic.co/v1/versions/$ELASTIC_STACK_VERSION/builds/latest | jq -r $jq)
39-
echo $result
40-
curl $result > logstash-docker-image.tar.gz
41-
tar xfvz logstash-docker-image.tar.gz repositories
42-
echo "Loading docker image: "
43-
cat repositories
44-
docker load < logstash-docker-image.tar.gz
45-
rm logstash-docker-image.tar.gz
46-
cd -
47-
69+
download_and_load_docker_snapshot_artifact "logstash"
4870
if [ "$INTEGRATION" == "true" ]; then
49-
50-
cd /tmp
51-
52-
jq=".build.projects.\"elasticsearch\".packages.\"elasticsearch$DISTRIBUTION_SUFFIX-$ELASTIC_STACK_VERSION-docker-image.tar.gz\".url"
53-
result=$(curl --silent https://artifacts-api.elastic.co/v1/versions/$ELASTIC_STACK_VERSION/builds/latest | jq -r $jq)
54-
echo $result
55-
curl $result > elasticsearch-docker-image.tar.gz
56-
tar xfvz elasticsearch-docker-image.tar.gz repositories
57-
echo "Loading docker image: "
58-
cat repositories
59-
docker load < elasticsearch-docker-image.tar.gz
60-
rm elasticsearch-docker-image.tar.gz
61-
cd -
62-
71+
download_and_load_docker_snapshot_artifact "elasticsearch"
6372
fi
6473
fi
6574

0 commit comments

Comments
 (0)