Skip to content

Commit 7509f31

Browse files
committed
[CI] Refactors Serverless and Stack into one script
1 parent e7a392c commit 7509f31

File tree

4 files changed

+57
-37
lines changed

4 files changed

+57
-37
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: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,27 @@
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+
export TEST_ES_SERVER=`buildkite-agent meta-data get "ELASTICSEARCH_URL"`
12+
export 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}
28+
export TEST_SUITE=${TEST_SUITE:-platinum}
1829

1930
echo "--- :ruby: Building Docker image"
2031
docker build \
@@ -27,20 +38,39 @@ docker build \
2738

2839
mkdir -p elasticsearch-api/tmp
2940

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

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
raw_key = File.read("#{CERTS_PATH}/testnode.key")
3636
key = OpenSSL::PKey::RSA.new(raw_key)
3737
ca_file = File.expand_path("#{CERTS_PATH}/ca.crt")
38-
host = "https://elastic:#{password}@#{uri.host}:#{uri.port}".freeze
38+
host = "https://elastic:#{password}@#{uri.host}:#{uri.port}".freeze unless ENV['TEST_SUITE'] == 'serverless'
3939
transport_options = {
4040
ssl: {
4141
client_cert: certificate,

0 commit comments

Comments
 (0)