Follow-up from review of #127 (David Engel). These are non-blocking maintainability items intentionally deferred so as not to churn the now-green ODBC CI pipeline.
1. Duplicated distro target lists in validation-stages.yml
The Alpine and deb/rhel targets: blocks are repeated across shared-mode and per-job-mode, for both the nextest and ODBC matrices (6+ near-identical copies). Adding or removing a distro currently requires editing many places and invites drift.
Idea: hoist each target list into a reusable variable / YAML anchor or a parameter default.
2. ~130-line block duplicated in test-matrix-odbc-template-arm64.yml
The shared-mode and per-job-mode steps: sequences differ only in how container/entry/sentinel names are sourced. Hard to factor further within ADO template constraints, but worth tracking so future edits to one path stay in sync with the other.
3. (optional) build_e2e.sh driver-name single source of truth
build_e2e.sh previously wrote OUT_DIR/DRIVER_FILE while run_e2e.sh --skip-build re-derived the name from uname. The dead write was removed in #127, but the two scripts still independently derive the driver library name. Consider consuming a single staged value in run_e2e.sh so the name has one source of truth.
Context: #127
Follow-up from review of #127 (David Engel). These are non-blocking maintainability items intentionally deferred so as not to churn the now-green ODBC CI pipeline.
1. Duplicated distro target lists in
validation-stages.ymlThe Alpine and deb/rhel
targets:blocks are repeated across shared-mode and per-job-mode, for both the nextest and ODBC matrices (6+ near-identical copies). Adding or removing a distro currently requires editing many places and invites drift.Idea: hoist each target list into a reusable variable / YAML anchor or a parameter default.
2. ~130-line block duplicated in
test-matrix-odbc-template-arm64.ymlThe shared-mode and per-job-mode
steps:sequences differ only in howcontainer/entry/sentinel names are sourced. Hard to factor further within ADO template constraints, but worth tracking so future edits to one path stay in sync with the other.3. (optional)
build_e2e.shdriver-name single source of truthbuild_e2e.shpreviously wroteOUT_DIR/DRIVER_FILEwhilerun_e2e.sh --skip-buildre-derived the name fromuname. The dead write was removed in #127, but the two scripts still independently derive the driver library name. Consider consuming a single staged value inrun_e2e.shso the name has one source of truth.Context: #127