Commit Graph

40 Commits

Author SHA1 Message Date
Henry Mercer
ecec9b5a37 Share per-language telemetry fields without renaming
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-17 19:06:17 +01:00
Henry Mercer
f4fa111630 Share elapsed-time rounding for bundle downloads
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-16 19:51:23 +01:00
Henry Mercer
f536ef48b7 Centralize CodeQL download telemetry fields
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-16 17:30:50 +01:00
Henry Mercer
289376d7dd Use per-language CodeQL bundles
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-16 16:56:33 +01:00
Henry Mercer
0224ca9728 Use a plain error when the HTTP status is unknown
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-15 12:55:26 +01:00
Henry Mercer
13354125bc Omit unknown HTTP status codes from download errors
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-14 11:41:48 +01:00
Henry Mercer
5bdaf5d4af Preserve HTTP errors from streaming bundle downloads
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-10 19:05:41 +01:00
Henry Mercer
40a6b38247 Address toolcache cleanup review feedback
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-08 15:55:41 +01:00
Henry Mercer
31da345c07 Address review comments
Delete each version directory individually so that a symlinked one is skipped rather than removed, take an `ActionState` so the environment is read through `ReadOnlyEnv` rather than the deprecated `getOptionalEnvVar`, let `deleteToolcacheBundles` report its own failure to locate the toolcache instead of having the caller catch it, quote paths in log messages, and rename `HAS_OBTAINED_CODEQL_TOOLS` to `HAS_SET_UP_CODEQL`, which is also set when we find the tools in the toolcache rather than downloading them.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-04 17:43:40 +01:00
Henry Mercer
e13c3dc834 Only clean up a toolcache on the workspace filesystem
Some runner images keep the toolcache on a different volume to the workspace, so deleting the tools there frees up disk space that the analysis cannot use, and costs a later step that wanted them in the toolcache a download. Windows runners are laid out this way, with the toolcache on `C:` and the workspace on `D:`.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-04 11:00:56 +01:00
Henry Mercer
1331773b9a Address Copilot review feedback
Run the cleanup even when the download will not be cached in the toolcache, since the toolcache shares a filesystem with the directory we extract to, so freeing it helps either way, and report an error other than the toolcache being absent as a failure rather than as an empty toolcache.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-04 10:26:09 +01:00
Henry Mercer
762a5ed7f7 Add a helper to delete the CodeQL tools from the toolcache
`deleteToolcacheBundles` removes `$RUNNER_TOOL_CACHE/CodeQL` and reports which versions were there. It refuses to follow a symlinked CodeQL directory so that it can only ever delete paths that are really inside the toolcache, and reports failures rather than throwing. Not called yet.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-04 10:12:10 +01:00
Henry Mercer
c05e445696 Report tools download durations on both download paths
The streaming path reported no timings at all, so we have no data for the
path that most runs take. It now reports a total duration, which is also
populated on the download-then-extract path.

That path additionally reports the extraction duration, which was
previously computed but only logged.

`downloadDurationMs` keeps its existing meaning of time spent downloading
alone, so existing telemetry stays comparable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 628ce334-991a-4578-9c1b-93d2e96bbddb
2026-08-24 18:32:04 +01:00
sim
2d3b351ea6 Handle network errors when streaming the CodeQL bundle download
A network error such as `ECONNRESET` while streaming the download and
extraction of the CodeQL bundle terminated the `init` Action rather than
falling back to downloading the bundle before extracting it, since no
`error` listener was attached to the request returned by `https.get`.

Also pipe the response into `tar` using `stream.pipeline` so that errors
on the response itself are surfaced and `tar`'s standard input is closed,
and abort the request if it stalls.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-30 18:47:27 +01:00
Henry Mercer
3c20a74df3 Remove unused bundle download fields
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-20 18:55:25 +01:00
Henry Mercer
cac5926de5 Delete unused exports 2025-11-18 18:16:54 +00:00
Henry Mercer
d84f470a9a Improve method naming 2025-10-28 13:06:14 +00:00
Henry Mercer
d23f49f56f Fix assumption that download URLs contain file extension
This is not the case when downloading the bundle from a GitHub Release synced to GHES with the CodeQL Action sync tool.
2025-01-22 13:02:45 +00:00
Fotis Koutoulakis (@NlightNFotis)
88bcf64e02 feat: change wording of error reporting when a failure occurs during extraction 2024-12-11 11:32:53 +00:00
Fotis Koutoulakis (@NlightNFotis)
4c20d4f58a feat: cleanup destination directory if we fail during streaming of the extraction 2024-12-09 19:13:05 +00:00
Fotis Koutoulakis (@NlightNFotis)
0dc76a996d feat: use http agent that respects environment proxy settings when streaming 2024-12-04 19:29:22 +00:00
Henry Mercer
7bcf845de9 Record telemetry for cache operation duration 2024-12-03 18:23:15 +00:00
Henry Mercer
93f3303766 Tweak log wording 2024-12-03 18:23:04 +00:00
Henry Mercer
b2a4442810 Ensure destination directory exists when streaming extraction 2024-12-03 18:22:44 +00:00
Henry Mercer
d5bcf48469 Add more error handling to zstd extraction 2024-12-03 18:22:28 +00:00
Henry Mercer
0b2048550c Write toolcache marker file 2024-12-03 18:05:53 +00:00
Henry Mercer
198fb4b4b2 Extract directly to toolcache when feature enabled 2024-12-02 18:23:41 +00:00
Henry Mercer
be26fe61b5 Enable specifying extraction destination 2024-12-02 17:58:30 +00:00
Fotis Koutoulakis (@NlightNFotis)
5445a29a97 tests: instead of false, use old feature flag with default value of false 2024-11-12 17:59:47 +00:00
Fotis Koutoulakis (@NlightNFotis)
e6dd4048e9 workaround: disable streaming when downloading codeql bundle 2024-11-12 16:39:21 +00:00
Henry Mercer
ebbe050cf6 Do not pass undefined authorization header 2024-11-11 15:07:23 +00:00
Henry Mercer
33f2dc57a4 Enable zstd bundles on GHES and remove feature flag 2024-11-01 15:24:51 +00:00
Henry Mercer
972eba1b90 Only stream installing the bundle on Linux 2024-10-22 22:05:49 +01:00
Henry Mercer
06361b4d2b Bump high water mark when downloading bundle to 16 MB 2024-10-22 21:18:03 +01:00
Henry Mercer
565880b86a Add explicit field for extraction streaming 2024-10-10 19:54:56 +01:00
Henry Mercer
222ac621e3 Improve duration formatting 2024-10-10 19:48:21 +01:00
Henry Mercer
90c42c41ec Improve logging 2024-10-10 19:48:21 +01:00
Henry Mercer
df0590b2ee Follow redirects 2024-10-10 19:48:20 +01:00
Henry Mercer
d70300d9f5 Use https module 2024-10-10 19:48:20 +01:00
Henry Mercer
ddead5420c Stream the download and extraction of zstd bundles
Behind a feature flag
2024-10-10 19:48:20 +01:00