Skip to content

Commit 09c4746

Browse files
committed
[CI] Separating jobs in pipeline for Serverless
1 parent 676e1ad commit 09c4746

File tree

3 files changed

+42
-26
lines changed

3 files changed

+42
-26
lines changed

.buildkite/create-serverless.sh

100644100755
+9-10
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,14 @@
22

33
set -euo pipefail
44

5-
# Using BUILDKITE_JOB_ID for the name to make it unique:
6-
export EC_PROJECT_NAME="$EC_PROJECT_PREFIX-$BUILDKITE_JOB_ID"
7-
8-
# ensure serverless instance is deleted even if script errors
9-
cleanup() {
10-
echo -e "--- :elasticsearch: :broom::sparkles: Tear down serverless instance $EC_PROJECT_NAME"
11-
qaf elastic-cloud projects delete
12-
rm -rf "~/.elastic/cloud.json"
13-
}
14-
trap cleanup EXIT
5+
if [[ -z $EC_PROJECT_PREFIX ]]; then
6+
echo -e "\033[31;1mERROR:\033[0m Required environment variable [EC_PROJECT_PREFIX] not set\033[0m"
7+
exit 1
8+
fi
159

10+
# Using BUILDKITE_JOB_ID for the name to make it unique:
11+
# export EC_PROJECT_NAME="$EC_PROJECT_PREFIX-$BUILDKITE_JOB_ID"
12+
export EC_PROJECT_NAME="$EC_PROJECT_PREFIX-test"
1613
echo -e "--- :elasticsearch: Start serverless instance $EC_PROJECT_NAME"
1714

1815
qaf elastic-cloud projects create --project-type elasticsearch
@@ -21,6 +18,8 @@ deployment=$(qaf elastic-cloud projects describe $EC_PROJECT_NAME --as-json --sh
2118
# Set ELASTICSEARCH_URL and API_KEY variables
2219
export ES_API_SECRET_KEY=$(echo "$deployment" | jq -r '.credentials.api_key')
2320
export ELASTICSEARCH_URL=$(echo "$deployment" | jq -r '.elasticsearch.url')
21+
buildkite-agent meta-data set "ES_API_SECRET_KEY" $ES_API_SECRET_KEY
22+
buildkite-agent meta-data set "ELASTICSEARCH_URL" $ELASTICSEARCH_URL
2423

2524
echo -e "--- :computer: Environment variables"
2625
echo -e "ELASTICSEARCH_URL $ELASTICSEARCH_URL"

.buildkite/pipeline.yml

+31-6
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,31 @@ steps:
3737
DEBUG: true
3838
command: ./.buildkite/run-yaml-tests.sh
3939
artifact_paths: "elasticsearch-api/tmp/*"
40-
- label: ":elasticsearch: Serverless :rspec: API Tests :ruby: {{ matrix.ruby_source }} - {{ matrix.ruby }}"
40+
- label: "Create :elasticsearch: Serverless projects"
41+
key: "create-serverless"
4142
agents:
4243
image: docker.elastic.co/appex-qa/qaf:latest
44+
env:
45+
EC_PROJECT_PREFIX: ruby
46+
EC_REGISTER_BACKEND: buildkite
47+
EC_REGION: aws-eu-west-1
48+
EC_ENV: qa
49+
commands:
50+
- mkdir ~/.elastic
51+
- touch ~/.elastic/cloud.json
52+
- echo "{\"api_key\":{\"qa\":\"$(vault read -field=qa secret/ci/elastic-elasticsearch-ruby/cloud-access)\"}}" > ~/.elastic/cloud.json
53+
- ./.buildkite/create-serverless.sh
54+
- label: "Run :elasticsearch: Serverless :rspec: Tests :ruby:"
55+
key: run-serverless-tests
56+
depends_on:
57+
- step: create-serverless
58+
agents:
59+
provider: "gcp"
4360
env:
4461
RUBY_VERSION: "{{ matrix.ruby }}"
4562
RUBY_SOURCE: "{{ matrix.ruby_source }}"
4663
TEST_SUITE: serverless
4764
QUIET: false
48-
EC_PROJECT_PREFIX: ruby
49-
EC_REGISTER_BACKEND: local
50-
EC_REGION: aws-eu-west-1
51-
EC_ENV: qa
5265
matrix:
5366
setup:
5467
ruby:
@@ -59,11 +72,23 @@ steps:
5972
- with:
6073
ruby_source: 'jruby'
6174
ruby: '9.4'
75+
command: ./.buildkite/run-serverless-tests.sh
76+
- label: "Destroy :elasticsearch: Serverless projects"
77+
depends_on:
78+
- step: run-serverless-tests
79+
allow_failure: true
80+
agents:
81+
image: docker.elastic.co/appex-qa/qaf:latest
82+
env:
83+
EC_REGISTER_BACKEND: buildkite
84+
EC_ENV: qa
85+
EC_REGION: aws-eu-west-1
86+
EC_PROJECT_NAME: ruby-test
6287
commands:
6388
- mkdir ~/.elastic
6489
- touch ~/.elastic/cloud.json
6590
- echo "{\"api_key\":{\"qa\":\"$(vault read -field=qa secret/ci/elastic-elasticsearch-ruby/cloud-access)\"}}" > ~/.elastic/cloud.json
66-
- ./.buildkite/run-serverless-tests.sh
91+
- qaf elastic-cloud projects delete
6792
- wait: ~
6893
continue_on_failure: true
6994
- label: "Log Results"

.buildkite/run-serverless-tests.sh

+2-10
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,8 @@ repo=`pwd`
99
export RUBY_VERSION=${RUBY_VERSION:-3.4}
1010
export BUILDKITE=${BUILDKITE:-false}
1111
export TRANSPORT_VERSION=${TRANSPORT_VERSION:-8}
12-
13-
if [[ -z $EC_PROJECT_PREFIX ]]; then
14-
echo -e "\033[31;1mERROR:\033[0m Required environment variable [EC_PROJECT_PREFIX] not set\033[0m"
15-
exit 1
16-
fi
17-
18-
# Create a serverless project:
19-
source $script_path/create-serverless.sh
20-
# Make sure we remove projects:
21-
trap cleanup EXIT
12+
ELASTICSEARCH_URL=`buildkite-agent meta-data get "ELASTICSEARCH_URL"`
13+
ES_API_SECRET_KEY=`buildkite-agent meta-data get "ES_API_SECRET_KEY"`
2214

2315
echo "--- :ruby: Building Docker image"
2416
docker build \

0 commit comments

Comments
 (0)