@@ -150,8 +150,7 @@ runs:
150150 set -x
151151 pip install --user launchable
152152 : # The build name cannot include a slash, so we replace the string here.
153- github_ref="${{ github.ref }}"
154- github_ref="${github_ref//\//_}"
153+ github_ref="${GITHUB_ref//\//_}"
155154 : # With the --name option, we need to configure a unique identifier for this build.
156155 : # To avoid setting the same build name as the CI which runs on other branches, we use the branch name here.
157156 build_name="${github_ref}_${GITHUB_PR_HEAD_SHA}"
@@ -166,64 +165,34 @@ runs:
166165 btest_test_suite="yjit-${btest_test_suite}"
167166 test_spec_test_suite="yjit-${test_spec_test_suite}"
168167 fi
169- launchable record build --name "${build_name}"
170- if [ "${test_all_enabled}" = "true" ]; then
171- test_all_session=$(launchable record session \
168+ # launchable_setup target var -- refers ${target} prefixed variables
169+ launchable_setup() {
170+ local target=$1 var=$2 session
171+ eval [ "\${${target}_enabled}" = "true" ] || return 0
172+ eval local suite=\${${target}_test_suite} report=\${${target}_report_file} oldval=\${${var}}
173+ session=$(launchable record session \
172174 --build "${build_name}" \
173175 --observation \
174176 --flavor os="${{ inputs.os }}" \
175177 --flavor test_task="${{ inputs.test-task }}" \
176178 --flavor test_opts="${test_opts}" \
177179 --flavor workflow="${{ github.workflow }}" \
178- --test-suite ${test_all_test_suite } \
180+ --test-suite ${suite } \
179181 )
180182 launchable subset \
181183 --get-tests-from-previous-sessions \
182184 --non-blocking \
183185 --target 90% \
184- --session "${test_all_session }" \
186+ --session "${session }" \
185187 raw > /dev/null
186- echo test_all_session="${test_all_session}" >> $GITHUB_OUTPUT
187- echo "TESTS=${TESTS} --launchable-test-reports=${test_all_report_file}" >> $GITHUB_ENV
188- fi
189- if [ "${btest_enabled}" = "true" ]; then
190- btest_session=$(launchable record session \
191- --build "${build_name}" \
192- --observation \
193- --flavor os="${{ inputs.os }}" \
194- --flavor test_task="${{ inputs.test-task }}" \
195- --flavor test_opts="${test_opts}" \
196- --flavor workflow="${{ github.workflow }}" \
197- --test-suite ${btest_test_suite} \
198- )
199- launchable subset \
200- --get-tests-from-previous-sessions \
201- --non-blocking \
202- --target 90% \
203- --session "${btest_session}" \
204- raw > /dev/null
205- echo btest_session="${btest_session}" >> $GITHUB_OUTPUT
206- echo "BTESTS=${BTESTS} --launchable-test-reports=${btest_report_file}" >> $GITHUB_ENV
207- fi
208- if [ "${test_spec_enabled}" = "true" ]; then
209- test_spec_session=$(launchable record session \
210- --build "${build_name}" \
211- --observation \
212- --flavor os="${{ inputs.os }}" \
213- --flavor test_task="${{ inputs.test-task }}" \
214- --flavor test_opts="${test_opts}" \
215- --flavor workflow="${{ github.workflow }}" \
216- --test-suite ${test_spec_test_suite} \
217- )
218- launchable subset \
219- --get-tests-from-previous-sessions \
220- --non-blocking \
221- --target 90% \
222- --session "${test_spec_session}" \
223- raw > /dev/null
224- echo test_spec_session="${test_spec_session}" >> $GITHUB_OUTPUT
225- echo "SPECOPTS=${SPECOPTS} --launchable-test-reports=${test_spec_report_dir}" >> $GITHUB_ENV
226- fi
188+ echo "${target}_session=${session}" >> $GITHUB_OUTPUT
189+ echo "$var=${oldval:+$oldval }--launchable-test-reports=$report" >> $GITHUB_ENV
190+ }
191+
192+ launchable record build --name "${build_name}"
193+ launchable_setup test_all TESTS
194+ launchable_setup btest BTESTS
195+ launchable_setup test_spec SPECOPTS
227196 if : steps.enable-launchable.outputs.enable-launchable
228197 env :
229198 test_all_enabled : ${{ steps.global.outputs.test_all_enabled }}
0 commit comments