Skip to content

Commit 76a67e4

Browse files
authored
Launchable: Enable PTS observation mode (#12617)
Launchable offers the Predictive Test Selection feature for speeding up CI execution. Predictive Test Selection leverages machine learning to identify the right tests to run for a specific code change. By analyzing data from past test runs and considering the changes being tested, Launchable determines which tests are most relevant. To evaluate the list of tests that Launchable selects, I enable PTS observation mode. Please note that there is no impacts on CI execution.
1 parent 7ed08c4 commit 76a67e4

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

.github/actions/launchable/setup/action.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ runs:
106106
echo test_all_report_file='launchable_test_all_report.json' >> $GITHUB_OUTPUT
107107
echo btest_report_file='launchable_btest_report.json' >> $GITHUB_OUTPUT
108108
echo test_spec_report_dir='launchable_test_spec_report' >> $GITHUB_OUTPUT
109+
echo test_all_subset_input_file='launchable_test_all_subset_input.txt' >> $GITHUB_OUTPUT
110+
echo btest_subset_input_file='launchable_btest_subset_input.txt' >> $GITHUB_OUTPUT
111+
echo test_spec_subset_input_file='launchable_test_spec_subset_input.txt' >> $GITHUB_OUTPUT
109112
if: steps.enable-launchable.outputs.enable-launchable
110113

111114
- name: Set environment variables for Launchable
@@ -158,31 +161,52 @@ runs:
158161
if [ "${test_all_enabled}" = "true" ]; then
159162
launchable record session \
160163
--build "${build_name}" \
164+
--observation \
161165
--flavor os=${{ inputs.os }} \
162166
--flavor test_task=${{ inputs.test-task }} \
163167
--flavor test_opts=${test_opts} \
164168
--test-suite ${test_all_test_suite} \
165169
> "${test_all_session_file}"
170+
find test -name "*_test.rb" -o -name "test_*.rb" | sed 's|^|file=|' > "${test_all_subset_input_file}"
171+
launchable subset \
172+
--non-blocking \
173+
--target 90% \
174+
--session "$(cat "${test_all_session_file}")" \
175+
raw ${test_all_subset_input_file} > /dev/null
166176
echo "TESTS=${TESTS} --launchable-test-reports=${test_all_report_file}" >> $GITHUB_ENV
167177
fi
168178
if [ "${btest_enabled}" = "true" ]; then
169179
launchable record session \
170180
--build "${build_name}" \
181+
--observation \
171182
--flavor os=${{ inputs.os }} \
172183
--flavor test_task=${{ inputs.test-task }} \
173184
--flavor test_opts=${test_opts} \
174185
--test-suite ${btest_test_suite} \
175186
> "${btest_session_file}"
187+
find bootstraptest -name "*_test.rb" -o -name "test_*.rb" | sed 's|^|file=|' > "${btest_subset_input_file}"
188+
launchable subset \
189+
--non-blocking \
190+
--target 90% \
191+
--session "$(cat "${btest_session_file}")" \
192+
raw ${btest_subset_input_file} > /dev/null
176193
echo "BTESTS=${BTESTS} --launchable-test-reports=${btest_report_file}" >> $GITHUB_ENV
177194
fi
178195
if [ "${test_spec_enabled}" = "true" ]; then
179196
launchable record session \
180197
--build "${build_name}" \
198+
--observation \
181199
--flavor os=${{ inputs.os }} \
182200
--flavor test_task=${{ inputs.test-task }} \
183201
--flavor test_opts=${test_opts} \
184202
--test-suite ${test_spec_test_suite} \
185203
> "${test_spec_session_file}"
204+
find spec/ruby -name "*_spec.rb" | sed 's|^|file=|' > "${test_spec_subset_input_file}"
205+
launchable subset \
206+
--non-blocking \
207+
--target 90% \
208+
--session "$(cat "${test_spec_session_file}")" \
209+
raw ${test_spec_subset_input_file} > /dev/null
186210
echo "SPECOPTS=${SPECOPTS} --launchable-test-reports=${test_spec_report_dir}" >> $GITHUB_ENV
187211
fi
188212
if: steps.enable-launchable.outputs.enable-launchable
@@ -196,6 +220,9 @@ runs:
196220
test_all_report_file: ${{ steps.global.outputs.test_all_report_file }}
197221
btest_report_file: ${{ steps.global.outputs.btest_report_file }}
198222
test_spec_report_dir: ${{ steps.global.outputs.test_spec_report_dir }}
223+
test_all_subset_input_file: ${{ steps.global.outputs.test_all_subset_input_file }}
224+
btest_subset_input_file: ${{ steps.global.outputs.btest_subset_input_file }}
225+
test_spec_subset_input_file: ${{ steps.global.outputs.test_spec_subset_input_file }}
199226

200227
- name: Variables to report Launchable
201228
id: variables
@@ -261,6 +288,9 @@ runs:
261288
rm -f "${test_report_path}"
262289
rm -f "${btest_report_path}"
263290
rm -fr "${test_spec_report_path}"
291+
rm -f "${test_all_subset_input_file}"
292+
rm -f "${btest_subset_input_file}"
293+
rm -f "${test_spec_subset_input_file}"
264294
if: ${{ always() && steps.enable-launchable.outputs.enable-launchable }}
265295
env:
266296
test_report_path: ${{ steps.variables.outputs.test_report_path }}
@@ -272,3 +302,6 @@ runs:
272302
test_all_session_file: ${{ steps.global.outputs.test_all_session_file }}
273303
btest_session_file: ${{ steps.global.outputs.btest_session_file }}
274304
test_spec_session_file: ${{ steps.global.outputs.test_spec_session_file }}
305+
test_all_subset_input_file: ${{ steps.global.outputs.test_all_subset_input_file }}
306+
btest_subset_input_file: ${{ steps.global.outputs.btest_subset_input_file }}
307+
test_spec_subset_input_file: ${{ steps.global.outputs.test_spec_subset_input_file }}

0 commit comments

Comments
 (0)