Skip to content

Commit 4e86f04

Browse files
committed
[CI] Refactors Serverless and Stack into one script
1 parent bc61d9f commit 4e86f04

File tree

4 files changed

+58
-36
lines changed

4 files changed

+58
-36
lines changed

.buildkite/functions/wait-for-container.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function wait_for_container {
1414
echo ""
1515
docker inspect -f "{{range .State.Health.Log}}{{.Output}}{{end}}" ${1}
1616
echo -e "\033[34;1mINFO:\033[0m waiting for node $1 to be up\033[0m"
17-
sleep 5;
17+
sleep 10;
1818
done;
1919

2020
# Always show logs if the container is running, this is very useful both on CI as well as while developing

.buildkite/pipeline.yml

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,29 +51,19 @@ steps:
5151
- touch ~/.elastic/cloud.json
5252
- echo "{\"api_key\":{\"qa\":\"$(vault read -field=qa secret/ci/elastic-elasticsearch-ruby/cloud-access)\"}}" > ~/.elastic/cloud.json
5353
- ./.buildkite/create-serverless.sh
54-
- label: "Run :elasticsearch: Serverless :rspec: Tests :ruby: {{ matrix.ruby_source }} {{ matrix.ruby }}"
54+
- label: "Run :elasticsearch: Serverless :rspec: Tests :ruby:"
5555
key: run-serverless-tests
5656
depends_on:
5757
- step: create-serverless
5858
agents:
5959
provider: "gcp"
6060
env:
61-
RUBY_VERSION: "{{ matrix.ruby }}"
62-
RUBY_SOURCE: "{{ matrix.ruby_source }}"
61+
RUBY_VERSION: "3.4"
62+
RUBY_SOURCE: "ruby"
6363
TEST_SUITE: serverless
6464
ES_YAML_TESTS_BRANCH: main
6565
QUIET: false
66-
matrix:
67-
setup:
68-
ruby:
69-
- '3.4'
70-
ruby_source:
71-
- 'ruby'
72-
adjustments:
73-
- with:
74-
ruby_source: 'jruby'
75-
ruby: '9.4'
76-
command: ./.buildkite/run-serverless-tests.sh
66+
command: ./.buildkite/run-yaml-tests.sh
7767
artifact_paths: "elasticsearch-api/tmp/*"
7868
- label: "Destroy :elasticsearch: Serverless projects"
7969
depends_on:

.buildkite/run-yaml-tests.sh

Lines changed: 50 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,26 @@
55
# Version 0.1
66
#
77
script_path=$(dirname $(realpath -s $0))
8-
source $script_path/functions/imports.sh
8+
9+
if [[ "$TEST_SUITE" == "serverless" ]]; then
10+
# Get Elasticsearch Serverless credentials and endpoint
11+
TEST_ES_SERVER=`buildkite-agent meta-data get "ELASTICSEARCH_URL"`
12+
ES_API_SECRET_KEY=`buildkite-agent meta-data get "ES_API_SECRET_KEY"`
13+
else
14+
# Start Elasticsearch Stack on Docker
15+
source $script_path/functions/imports.sh
16+
echo "--- :elasticsearch: Starting Elasticsearch"
17+
DETACH=true bash $script_path/run-elasticsearch.sh
18+
fi
19+
920
set -euo pipefail
1021
repo=`pwd`
1122

12-
echo "--- :elasticsearch: Starting Elasticsearch"
13-
DETACH=true bash $script_path/run-elasticsearch.sh
14-
1523
export RUBY_VERSION=${RUBY_VERSION:-3.1}
1624
export BUILDKITE=${BUILDKITE:-false}
1725
export TRANSPORT_VERSION=${TRANSPORT_VERSION:-8}
26+
export QUIET=${QUIET:-false}
27+
export DEBUG=${DEBUG:-false}
1828

1929
echo "--- :ruby: Building Docker image"
2030
docker build \
@@ -27,20 +37,40 @@ docker build \
2737

2838
mkdir -p elasticsearch-api/tmp
2939

30-
echo "--- :ruby: Running :yaml: tests"
40+
environment=($(cat <<-END
41+
--env "BUILDKITE=${BUILDKITE}"
42+
--env "TRANSPORT_VERSION=${TRANSPORT_VERSION}"
43+
--env "ES_YAML_TESTS_BRANCH=${ES_YAML_TESTS_BRANCH}"
44+
--env "DEBUG=${DEBUG}"
45+
--env "QUIET=${QUIET}"
46+
END
47+
))
48+
49+
if [[ "$TEST_SUITE" == "serverless" ]]; then
50+
echo "--- :ruby: Running :yaml: tests"
51+
environment+=($(cat <<-END
52+
--env "TEST_ES_SERVER=${TEST_ES_SERVER}"
53+
--env "ES_API_KEY=${ES_API_SECRET_KEY}"
54+
END
55+
))
56+
else
57+
echo "--- :ruby: Running $TEST_SUITE tests"
58+
environment+=($(cat <<-END
59+
--network="${network_name}"
60+
--env "TEST_ES_SERVER=${elasticsearch_url}"
61+
--env "ELASTIC_PASSWORD=${elastic_password}"
62+
--env "ELASTIC_USER=elastic"
63+
--env "TEST_ES_SERVER=${elasticsearch_url}"
64+
--env "STACK_VERSION=${STACK_VERSION}"
65+
END
66+
))
67+
fi
68+
3169
docker run \
32-
-u "$(id -u)" \
33-
--network="${network_name}" \
34-
--env "TEST_ES_SERVER=${elasticsearch_url}" \
35-
--env "ELASTIC_PASSWORD=${elastic_password}" \
36-
--env "ELASTIC_USER=elastic" \
37-
--env "BUILDKITE=${BUILDKITE}" \
38-
--env "TRANSPORT_VERSION=${TRANSPORT_VERSION}" \
39-
--env "STACK_VERSION=${STACK_VERSION}" \
40-
--env "ES_YAML_TESTS_BRANCH=${ES_YAML_TESTS_BRANCH}" \
41-
--env "DEBUG=${DEBUG}" \
42-
--volume $repo:/usr/src/app \
43-
--name elasticsearch-ruby \
44-
--rm \
45-
elastic/elasticsearch-ruby \
46-
bundle exec rake test:yaml
70+
-u "$(id -u)" \
71+
"${environment[@]}" \
72+
--volume $repo:/usr/src/app \
73+
--name elasticsearch-ruby \
74+
--rm \
75+
elastic/elasticsearch-ruby \
76+
bundle exec rake test:yaml

elasticsearch-api/spec/yaml-test-runner/run.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
require 'elasticsearch/tests/test_runner'
2222
require 'elasticsearch/tests/downloader'
2323

24+
puts "Env vars: #{ENV['TEST_SUITE']} #{ENV['TEST_ES_SERVER']}"
25+
2426
PROJECT_PATH = File.join(File.dirname(__FILE__), '../..')
2527
CERTS_PATH = "#{PROJECT_PATH}/../.buildkite/certs/".freeze
2628
host = ENV['TEST_ES_SERVER'] || 'https://localhost:9200'
@@ -35,7 +37,7 @@
3537
raw_key = File.read("#{CERTS_PATH}/testnode.key")
3638
key = OpenSSL::PKey::RSA.new(raw_key)
3739
ca_file = File.expand_path("#{CERTS_PATH}/ca.crt")
38-
host = "https://elastic:#{password}@#{uri.host}:#{uri.port}".freeze
40+
host = "https://elastic:#{password}@#{uri.host}:#{uri.port}".freeze unless ENV['TEST_SUITE'] == 'serverless'
3941
transport_options = {
4042
ssl: {
4143
client_cert: certificate,

0 commit comments

Comments
 (0)