|
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