Skip to content

fix: clearer installer and cumulative update diagnostics - #299

Open
dhensby wants to merge 5 commits into
tediousjs:masterfrom
dhensby:fix/review-follow-ups
Open

dhensby wants to merge 5 commits into
tediousjs:masterfrom
dhensby:fix/review-follow-ups

Conversation

@dhensby

@dhensby dhensby commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Follow-ups to small points that came up while reviewing #295 and #296, plus an OS-check message improvement. Each commit stands alone.

fix: clarify cumulative update resolution errors

  • When the download-page metadata has a file list but no HTTPS download.microsoft.com .exe installer in it, record that as a metadata problem ("File list has no HTTPS download.microsoft.com .exe installer (found: …)"), so the final error explains why the metadata wasn't used. The <a href> fallback is unchanged.
  • Don't repeat a network error's code when the cause message already contains it (getaddrinfo ENOTFOUND host rather than getaddrinfo ENOTFOUND host / ENOTFOUND).

fix: fail clearly when installer extraction produces no setup.exe

  • Check that box/SSEI extraction produced a setup.exe before adding the directory to the tool cache, rather than caching an empty extraction and failing later when running a setup.exe that doesn't exist. The error names the version, the extraction directory and its contents.
  • When the SSEI bootstrapper produces no installer, include the media directory and the files it did produce in the error.

docs: note OS limits for SQL Server 2008, 2012 and 2014

  • The sqlserver-version description now says these only pass the OS check on Windows Server 2019 or older (which GitHub-hosted runners no longer offer) and points to skip-os-check. README usage block regenerated.

docs: tidy copilot instructions for update retries and extraction

  • Describe the update-page fetch as up to three attempts, note that link-resolution failures also fall back to installing without updates, and merge the overlapping SSEI/box extraction sentences into one description of extractAndCacheInstaller().

fix: mention skip-os-check when the runner OS is unsupported

  • The OS-check error only suggested switching runner (for 2008–2014, to the retired windows-2019); it now also points to skip-os-check.

Testing

  • Every commit lints, builds reproducibly (lib/ committed) and passes the test suite (155 tests at the tip); new tests fail against the previous implementation.

Note: #297 and the upcoming tool-cache fix also touch src/utils.ts, the README and lib/, so whichever lands later will need a rebase and npm run build.

🤖 Generated with Claude Code

dhensby and others added 5 commits October 9, 2026 10:02
Name the problem when Microsoft's download-page metadata lists no
acceptable installer (an empty file list, or no HTTPS
download.microsoft.com .exe URL among the files), so the final error
explains why the metadata was not used rather than just reporting that
no installer was found.

Stop repeating a network error's code when its message already
contains it, e.g. "getaddrinfo ENOTFOUND host" rather than
"getaddrinfo ENOTFOUND host / ENOTFOUND".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Check that extracting box or SSEI install media actually produced a
setup.exe before adding the directory to the tool cache. Previously an
extraction that produced no setup.exe (e.g. an empty directory) was
cached and the action only failed later, when running a setup.exe that
didn't exist, and the cached directory could be reused on persistent
runners. The error names the version, the extraction directory and what
it contained.

When the SSEI bootstrapper produces no installer, include the media
directory and the files it did produce in the error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sqlserver-version description lists every supported version, but
2008, 2012 and 2014 fail the OS check on runners newer than Windows
Server 2019, which GitHub-hosted runners no longer offer. Say so, and
point to skip-os-check for trying them anyway.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the cumulative update page fetch as up to three attempts
rather than "retries up to three times", and note that a failure to
resolve the update link (not only to download it) also falls back to
installing without updates. Replace the overlapping sentences about
SSEI and box extraction with one description of the shared
extractAndCacheInstaller() step, including its setup.exe check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The OS-check error only tells users to switch runner, and for SQL
Server 2008, 2012 and 2014 it points to windows-2019, which
GitHub-hosted runners no longer offer. Also point to skip-os-check so
users can attempt the installation anyway.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant