|
8 | 8 | # - INTEGRATION: (optional) a value of "true" changes the default value of $TEST_MODE to "integration" |
9 | 9 | set -e |
10 | 10 |
|
| 11 | +pull_docker_snapshot() { |
| 12 | + project="${1?project name required}" |
| 13 | + local docker_image="docker.elastic.co/${project}/${project}${DISTRIBUTION_SUFFIX}:${ELASTIC_STACK_VERSION}" |
| 14 | + echo "Pulling $docker_image" |
| 15 | + docker pull "$docker_image" |
| 16 | +} |
| 17 | + |
11 | 18 | # TEST_MODE should be one of "unit" or "integration" (defaults to "unit" unless INTEGRATION=true) |
12 | 19 | : "${TEST_MODE:=$([[ "${INTEGRATION}" = "true" ]] && echo "integration" || echo "unit")}" |
13 | 20 | export TEST_MODE |
14 | 21 |
|
15 | | - VERSION_URL="https://raw.githubusercontent.com/elastic/logstash/master/ci/logstash_releases.json" |
| 22 | +VERSION_URL="https://raw.githubusercontent.com/elastic/logstash/master/ci/logstash_releases.json" |
16 | 23 |
|
17 | | - if [ -z "${ELASTIC_STACK_VERSION}" ]; then |
| 24 | +if [ -z "${ELASTIC_STACK_VERSION}" ]; then |
18 | 25 | echo "Please set the ELASTIC_STACK_VERSION environment variable" |
19 | | - echo "For example: export ELASTIC_STACK_VERSION=6.2.4" |
| 26 | + echo "For example: export ELASTIC_STACK_VERSION=7.x" |
20 | 27 | exit 1 |
21 | 28 | fi |
22 | 29 |
|
23 | | - echo "Fetching versions from $VERSION_URL" |
| 30 | +echo "Fetching versions from $VERSION_URL" |
24 | 31 | VERSIONS=$(curl $VERSION_URL) |
25 | 32 |
|
26 | | - if [[ "$SNAPSHOT" = "true" ]]; then |
| 33 | +if [[ "$SNAPSHOT" = "true" ]]; then |
27 | 34 | ELASTIC_STACK_RETRIEVED_VERSION=$(echo $VERSIONS | jq '.snapshots."'"$ELASTIC_STACK_VERSION"'"') |
28 | 35 | echo $ELASTIC_STACK_RETRIEVED_VERSION |
29 | 36 | else |
30 | 37 | ELASTIC_STACK_RETRIEVED_VERSION=$(echo $VERSIONS | jq '.releases."'"$ELASTIC_STACK_VERSION"'"') |
31 | 38 | fi |
32 | 39 |
|
33 | | - if [[ "$ELASTIC_STACK_RETRIEVED_VERSION" != "null" ]]; then |
| 40 | +if [[ "$ELASTIC_STACK_RETRIEVED_VERSION" != "null" ]]; then |
34 | 41 | # remove starting and trailing double quotes |
35 | 42 | ELASTIC_STACK_RETRIEVED_VERSION="${ELASTIC_STACK_RETRIEVED_VERSION%\"}" |
36 | 43 | ELASTIC_STACK_RETRIEVED_VERSION="${ELASTIC_STACK_RETRIEVED_VERSION#\"}" |
37 | 44 | echo "Translated $ELASTIC_STACK_VERSION to ${ELASTIC_STACK_RETRIEVED_VERSION}" |
38 | 45 | export ELASTIC_STACK_VERSION=$ELASTIC_STACK_RETRIEVED_VERSION |
39 | 46 | fi |
40 | 47 |
|
41 | | - echo "Testing against version: $ELASTIC_STACK_VERSION" |
42 | | - |
43 | | - if [[ "$ELASTIC_STACK_VERSION" = *"-SNAPSHOT" ]]; then |
44 | | - cd /tmp |
45 | | - |
46 | | - jq=".build.projects.logstash.packages.\"logstash-$ELASTIC_STACK_VERSION-docker-image.tar.gz\".url" |
47 | | - result=$(curl --silent https://artifacts-api.elastic.co/v1/versions/$ELASTIC_STACK_VERSION/builds/latest | jq -r $jq) |
48 | | - echo $result |
49 | | - curl $result > logstash-docker-image.tar.gz |
50 | | - tar xfvz logstash-docker-image.tar.gz repositories |
51 | | - echo "Loading docker image: " |
52 | | - cat repositories |
53 | | - docker load < logstash-docker-image.tar.gz |
54 | | - rm logstash-docker-image.tar.gz |
55 | | - cd - |
| 48 | +case "${DISTRIBUTION}" in |
| 49 | + default) DISTRIBUTION_SUFFIX="" ;; # empty string when explicit "default" is given |
| 50 | + *) DISTRIBUTION_SUFFIX="${DISTRIBUTION/*/-}${DISTRIBUTION}" ;; |
| 51 | +esac |
| 52 | +export DISTRIBUTION_SUFFIX |
| 53 | + |
| 54 | +echo "Testing against version: $ELASTIC_STACK_VERSION (distribution: ${DISTRIBUTION:-"default"})" |
| 55 | + |
| 56 | +if [[ "$ELASTIC_STACK_VERSION" = *"-SNAPSHOT" ]]; then |
| 57 | + pull_docker_snapshot "logstash" |
56 | 58 | fi |
57 | 59 |
|
58 | | - if [ -f Gemfile.lock ]; then |
| 60 | +if [ -f Gemfile.lock ]; then |
59 | 61 | rm Gemfile.lock |
60 | 62 | fi |
61 | 63 |
|
| 64 | +CURRENT_DIR=$(dirname "${BASH_SOURCE[0]}") |
| 65 | + |
62 | 66 | docker-compose --file ".ci/common/docker-compose.yml" --file ".ci/${TEST_MODE}/docker-compose.override.yml" down |
63 | 67 | docker-compose --file ".ci/common/docker-compose.yml" --file ".ci/${TEST_MODE}/docker-compose.override.yml" --verbose build |
0 commit comments