Skip to content

Commit fffe7a6

Browse files
committed
Add ability to parametrize QE tests at runtime without pushing commits to test repo
1 parent 2d48795 commit fffe7a6

File tree

2 files changed

+85
-279
lines changed

2 files changed

+85
-279
lines changed

.github/workflows/run-qe-test.yml

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,20 @@ on:
1313
test-definition:
1414
required: true
1515
description: Test definition
16+
feature:
17+
required: true
18+
description: "Client feature to test"
19+
num_records:
20+
type: number
21+
default: 1000000
22+
description: Number of records to use in workload
23+
insert_mode:
24+
required: true
25+
type: choice
26+
description: Insert mode means don't check for outliers.
27+
options:
28+
- insert
29+
- outlier
1630
workflow_call:
1731
inputs:
1832
# workflow_call hack
@@ -39,6 +53,73 @@ concurrency:
3953
group: ${{ github.workflow }}
4054

4155
jobs:
56+
register-test-definition-with-custom-env-var-parameters:
57+
runs-on: ubuntu-24.04
58+
env:
59+
REGISTER_FILE_PATH_IN_REPO: perf_regression/register-client-tests.yaml
60+
steps:
61+
# TODO: composite action for this would be helpful
62+
# TODO: need special testctl not in jfrog yet
63+
- name: Get test-register
64+
uses: actions/checkout@v4
65+
with:
66+
repository: citrusleaf/qe-tools
67+
token: ${{ secrets.CLIENT_BOT_PAT }}
68+
path: qe-tools
69+
sparse-checkout: |
70+
bin/test-register
71+
sparse-checkout-cone-mode: false
72+
73+
- name: Add test-register to PATH
74+
run: echo "$(realpath qe-tools/bin)" >> $GITHUB_PATH
75+
76+
- uses: jfrog/setup-jfrog-cli@v4
77+
env:
78+
JF_URL: ${{ secrets.JFROG_PLATFORM_URL }}
79+
JF_ACCESS_TOKEN: ${{ secrets.JFROG_ACCESS_TOKEN }}
80+
81+
- run: jf rt download --fail-no-op qe-go-dev-local/testctl.amd64.linux qe-tools/bin/testctl
82+
- run: chmod u+x ./testctl
83+
working-directory: qe-tools/bin
84+
85+
- name: Add AWS credentials
86+
run: |
87+
mkdir -p ~/.aws
88+
cd ~/.aws
89+
sections=("default" "qe")
90+
for section in ${sections[@]};
91+
do
92+
cat <<-EOF >> credentials
93+
[$section]
94+
aws_access_key_id = ${{ secrets.QE_TEST_ENQUEUE_AWS_ACCESS_KEY_ID }}
95+
aws_secret_access_key = ${{ secrets.QE_TEST_ENQUEUE_AWS_SECRET_ACCESS_KEY }}
96+
region = us-west-1
97+
EOF
98+
done
99+
shell: bash
100+
101+
- uses: actions/checkout@v4
102+
with:
103+
# Entire repo must be cloned because the test definition includes this repo
104+
path: aerospike-tests-python
105+
# Test definition includes the feature branch name
106+
ref: ${{ github.head_ref }}
107+
fetch-depth: 0
108+
109+
- name: Environment variable overrides
110+
run: |
111+
yq eval -i ${{ env.REGISTER_FILE_PATH_IN_REPO }} ".perf_regression/client_centered.environment.MODE = \"${{ inputs.insert_mode }}\""
112+
yq eval -i ${{ env.REGISTER_FILE_PATH_IN_REPO }} ".perf_regression/client_centered.environment.NUM_RECORDS = \"${{ inputs.num_records }}\""
113+
yq eval -i ${{ env.REGISTER_FILE_PATH_IN_REPO }} ".perf_regression/client_centered.environment.FEATURE = \"${{ inputs.feature }}\""
114+
working-directory: aerospike-tests-python
115+
116+
- run: test-register --config staging ./${{ env.REGISTER_FILE_PATH_IN_REPO }}
117+
working-directory: aerospike-tests-python
118+
119+
# run-changed-tests:
120+
# needs: register-test-definition
121+
# uses: aerospike/aerospike-client-python/.github/workflows/run-qe-test.yml@cicd-performance-regression-tests-using-asmikas-qe-env
122+
42123
add-python-client-to-qe-test-image-for-performance-regression-tests:
43124
env:
44125
WHEEL_ARCH: x86_64
@@ -101,7 +182,10 @@ jobs:
101182
TEST_CONFIG_FILE_NAME: client_perf.yaml
102183
TESTCTL_BINARY_NAME: testctl
103184
runs-on: ubuntu-24.04
104-
needs: add-python-client-to-qe-test-image-for-performance-regression-tests
185+
needs: [
186+
add-python-client-to-qe-test-image-for-performance-regression-tests,
187+
register-client-test-with-custom-env-var-parameters
188+
]
105189
steps:
106190
# - name: Setup Rclone
107191
# uses: AnimMouse/setup-rclone@0d99fa3878a334d3e307c1a8372ad55550fdaea7

test/register-client-tests.yaml

Lines changed: 0 additions & 278 deletions
This file was deleted.

0 commit comments

Comments
 (0)