ci: fix Ghidra cache to include config dir, bump timeout to 90min

The Ghidra cache was missing the config directory (config.yaml with
install path), so doctor couldn't find the installation on cache hit
and setup re-downloaded every time. Now caches both the Ghidra binary
dir and config dir on all platforms. Bumped integration timeout to 90
minutes for first Windows cold run.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Alexander Kiselev
2026-02-06 15:01:29 -08:00
co-authored by Claude Opus 4.6
parent 860575dbc4
commit 897fe82e94
+20 -10
View File
@@ -44,10 +44,11 @@ jobs:
- name: Run CLI tests
run: cargo test --test e2e --test command_tests --test output_format_integration --verbose
# Job 2: Read-only integration tests (one bridge) - ~10-15 min
# Job 2: Read-only integration tests (one bridge)
# First Windows run is slow (~60min) due to Ghidra headless JVM; cached runs ~15-20min
readonly-integration:
runs-on: ${{ matrix.os }}
timeout-minutes: 60
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
@@ -68,14 +69,17 @@ jobs:
- name: Cache Rust
uses: Swatinem/rust-cache@v2
- name: Cache Ghidra
- name: Cache Ghidra installation and config
uses: actions/cache@v4
with:
path: |
~/.local/share/ghidra-cli
~/.config/ghidra-cli
~/Library/Application Support/ghidra-cli
~/Library/Preferences/ghidra-cli
~/AppData/Local/ghidra-cli
key: ghidra-${{ matrix.os }}-v3
~/AppData/Roaming/ghidra-cli
key: ghidra-${{ matrix.os }}-v4
- name: Cache Ghidra projects
uses: actions/cache@v4
@@ -110,7 +114,7 @@ jobs:
# Job 3: Mutation tests (parallel with job 2) - ~10-15 min
mutation-integration:
runs-on: ${{ matrix.os }}
timeout-minutes: 60
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
@@ -131,14 +135,17 @@ jobs:
- name: Cache Rust
uses: Swatinem/rust-cache@v2
- name: Cache Ghidra
- name: Cache Ghidra installation and config
uses: actions/cache@v4
with:
path: |
~/.local/share/ghidra-cli
~/.config/ghidra-cli
~/Library/Application Support/ghidra-cli
~/Library/Preferences/ghidra-cli
~/AppData/Local/ghidra-cli
key: ghidra-${{ matrix.os }}-v3
~/AppData/Roaming/ghidra-cli
key: ghidra-${{ matrix.os }}-v4
- name: Cache Ghidra projects
uses: actions/cache@v4
@@ -173,7 +180,7 @@ jobs:
# Job 4: Infrastructure tests (parallel with jobs 2+3) - ~8-10 min
infrastructure:
runs-on: ${{ matrix.os }}
timeout-minutes: 60
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
@@ -194,14 +201,17 @@ jobs:
- name: Cache Rust
uses: Swatinem/rust-cache@v2
- name: Cache Ghidra
- name: Cache Ghidra installation and config
uses: actions/cache@v4
with:
path: |
~/.local/share/ghidra-cli
~/.config/ghidra-cli
~/Library/Application Support/ghidra-cli
~/Library/Preferences/ghidra-cli
~/AppData/Local/ghidra-cli
key: ghidra-${{ matrix.os }}-v3
~/AppData/Roaming/ghidra-cli
key: ghidra-${{ matrix.os }}-v4
- name: Cache Ghidra projects
uses: actions/cache@v4