Skip to content

Commit bc33fc4

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

File tree

4 files changed

+56
-35
lines changed

4 files changed

+56
-35
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: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,21 @@ source $script_path/functions/imports.sh
99
set -euo pipefail
1010
repo=`pwd`
1111

12-
echo "--- :elasticsearch: Starting Elasticsearch"
13-
DETACH=true bash $script_path/run-elasticsearch.sh
12+
if [[ "$TEST_SUITE" == "serverless" ]]; then
13+
# Get Elasticsearch Serverless credentials and endpoint
14+
TEST_ES_SERVER=`buildkite-agent meta-data get "ELASTICSEARCH_URL"`
15+
ES_API_SECRET_KEY=`buildkite-agent meta-data get "ES_API_SECRET_KEY"`
16+
else
17+
# Start Elasticsearch Stack on Docker
18+
echo "--- :elasticsearch: Starting Elasticsearch"
19+
DETACH=true bash $script_path/run-elasticsearch.sh
20+
fi
1421

1522
export RUBY_VERSION=${RUBY_VERSION:-3.1}
1623
export BUILDKITE=${BUILDKITE:-false}
1724
export TRANSPORT_VERSION=${TRANSPORT_VERSION:-8}
25+
export QUIET=${QUIET:-false}
26+
export DEBUG=${DEBUG:-false}
1827

1928
echo "--- :ruby: Building Docker image"
2029
docker build \
@@ -27,20 +36,40 @@ docker build \
2736

2837
mkdir -p elasticsearch-api/tmp
2938

30-
echo "--- :ruby: Running :yaml: tests"
31-
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
39+
if [[ "$TEST_SUITE" == "serverless" ]]; then
40+
echo "--- :ruby: Running :yaml: tests"
41+
docker run \
42+
-u "$(id -u)" \
43+
--env "TEST_ES_SERVER=${TEST_ES_SERVER}" \
44+
--env "ES_API_KEY=${ES_API_SECRET_KEY}" \
45+
--env "BUILDKITE=${BUILDKITE}" \
46+
--env "TRANSPORT_VERSION=${TRANSPORT_VERSION}" \
47+
--env "ES_YAML_TESTS_BRANCH=${ES_YAML_TESTS_BRANCH}" \
48+
--env "DEBUG=${DEBUG}" \
49+
--env "QUIET=${QUIET}" \
50+
--volume $repo:/usr/src/app \
51+
--name elasticsearch-ruby \
52+
--rm \
53+
elastic/elasticsearch-ruby \
54+
bundle exec rake test:yaml
55+
else
56+
echo "--- :ruby: Running stack tests"
57+
docker run \
58+
-u "$(id -u)" \
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+
--env "BUILDKITE=${BUILDKITE}" \
66+
--env "TRANSPORT_VERSION=${TRANSPORT_VERSION}" \
67+
--env "ES_YAML_TESTS_BRANCH=${ES_YAML_TESTS_BRANCH}" \
68+
--env "DEBUG=${DEBUG}" \
69+
--env "QUIET=${QUIET}" \
70+
--volume $repo:/usr/src/app \
71+
--name elasticsearch-ruby \
72+
--rm \
73+
elastic/elasticsearch-ruby \
74+
bundle exec rake test:yaml
75+
fi

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)