Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 33 additions & 5 deletions src/Tiger/skills/tiger-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,41 @@ real-time CI/CD information that may not yet be in the local database.

## Location

The Tiger executable is located at `../../tiger` relative to this skill file. Run it as:
Tiger's skills are copied beside the application in both source builds and installed
tools. Running from source does **not** require a separate `tiger` command on PATH or
another `dotnet run`.

Resolve `..\..\tiger.dll` on Windows (`../../tiger.dll` on Unix) from the directory
containing this loaded `SKILL.md`, **not** from the shell's current directory. Use the
resulting absolute path:

```
dotnet "<absolute-path-to-tiger.dll>" azdo tests --help
```
dotnet run --project src/Tiger/Tiger.csproj --

Replace `<absolute-path-to-tiger.dll>` in every example with that resolved path;
keep it quoted for paths containing spaces. This works for both source-build output
and installed tool packages. Source builds also provide an adjacent `tiger.exe`
(or `tiger` on Unix), but the DLL form works without an apphost.

For example, a Windows source build has this layout:

```text
<checkout>\artifacts\bin\Tiger\debug\
tiger.exe
tiger.dll
skills\
tiger-cli\SKILL.md
```

All output is structured **JSON** suitable for programmatic consumption.
The dashboard registers this output's `skills` directory with Copilot, not the
repository's `src\Tiger\skills` directory. If the loaded skill is instead a manually
registered source file and has no adjacent application, build Tiger and load the
output skills before continuing. Do not assume a global `tiger` installation exists.

Below, `tiger` in command names is shorthand for the resolved invocation above.
AzDO and Helix command results are structured **JSON** suitable for programmatic
consumption; `--help` displays help text.

## Available Commands

Expand Down Expand Up @@ -77,6 +105,6 @@ Each command supports `--help` for full argument and option details. Always run
options. For example:

```
dotnet run --project src/Tiger/Tiger.csproj -- azdo tests --help
dotnet run --project src/Tiger/Tiger.csproj -- helix workitems --help
dotnet "<absolute-path-to-tiger.dll>" azdo tests --help
dotnet "<absolute-path-to-tiger.dll>" helix workitems --help
```
25 changes: 18 additions & 7 deletions src/Tiger/skills/tiger-crash-dump/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ WHERE r.build_id = @buildId

The method for retrieving the dump file depends on whether the test ran on Helix or not.

### Invoking Tiger

For both source builds and installed tools, resolve `..\..\tiger.dll` on Windows
(`../../tiger.dll` on Unix) from the directory containing this loaded `SKILL.md`,
not from the shell's current directory. Replace `<absolute-path-to-tiger.dll>` in
the examples with the resulting absolute path and keep it quoted.

The dashboard registers skills from the application's output directory, where this
DLL is already present even when running from source. No global `tiger` command or
additional `dotnet run` is needed. If the DLL is missing because the skill was loaded
directly from the source tree, build Tiger and load its output skills first.
Run the relevant command with `--help` before using it to discover its options.

### Normal (non-Helix) tests

When `helix_job_name` is NULL, the crash dump is uploaded inside an **Azure DevOps pipeline artifact** associated with the test job.
Expand All @@ -47,19 +60,17 @@ When `helix_job_name` is NULL, the crash dump is uploaded inside an **Azure DevO

```shell
# Download all dump files from a build
tiger azdo download-dumps <build-id>
dotnet "<absolute-path-to-tiger.dll>" azdo download-dumps <build-id>

# Download dumps only from a specific test run
tiger azdo download-dumps <build-id> --run-id <run-id>
dotnet "<absolute-path-to-tiger.dll>" azdo download-dumps <build-id> --run-id <run-id>

# Specify output directory
tiger azdo download-dumps <build-id> --output ./dumps
dotnet "<absolute-path-to-tiger.dll>" azdo download-dumps <build-id> --output ./dumps
```

This command scans build artifacts, finds `.dmp` files, and downloads them individually without downloading entire artifacts.

The `tiger` CLI is available at `../../tiger` (relative to this skill).

**How it works under the hood:**
1. Lists all artifacts for the build
2. If `--run-id` is provided, filters to the artifact matching that test run's name
Expand All @@ -72,10 +83,10 @@ If `download-dumps` doesn't work, you can download the entire artifact containin

```shell
# List artifacts to find the right one
tiger azdo artifacts <build-id>
dotnet "<absolute-path-to-tiger.dll>" azdo artifacts <build-id>

# Download the full artifact (artifact name = test run name with underscores + "Attempt N Logs")
tiger azdo download <build-id> --artifact "<artifact-name>" --output ./logs.zip
dotnet "<absolute-path-to-tiger.dll>" azdo download <build-id> --artifact "<artifact-name>" --output ./logs.zip
```

As a last resort, use the AzDO REST API or the build's Artifacts tab in the web UI.
Expand Down
Loading