@@ -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,63 +165,38 @@ 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 session
171+ eval [ "\${${target}_enabled}" = "true" ] || return
172+ eval local suite=\${${target}_test_suite}
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+ echo "${target}_session=${session}" >> $GITHUB_OUTPUT
189+ }
190+
191+ launchable record build --name "${build_name}"
192+ if launchable_setup test_all; then
193+ echo "TESTS=${TESTS:+$TESTS }--launchable-test-reports=${test_all_report_file}" >> $GITHUB_ENV
188194 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
195+ if launchable_setup btest; then
196+ echo "BTESTS=${BTESTS:+$BTESTS }--launchable-test-reports=${btest_report_file}" >> $GITHUB_ENV
207197 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
198+ if launchable_setup test_spec; then
199+ echo "SPECOPTS=${SPECOPTS:$SPECOPTS }--launchable-test-reports=${test_spec_report_dir}" >> $GITHUB_ENV
226200 fi
227201 if : steps.enable-launchable.outputs.enable-launchable
228202 env :
0 commit comments