microsoft / microsoft/mssql-rs
Reduce duplication in ODBC/nextest CI target lists and arm64 test template
- Dominant language
- Rust
- Stars
- 53
- Forks
- 14
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 137
Description
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: https://github.com/microsoft/mssql-rs/pull/127
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.