-
Notifications
You must be signed in to change notification settings - Fork 342
138 lines (129 loc) · 4.53 KB
/
Copy pathcloud-launch-nightly.yml
File metadata and controls
138 lines (129 loc) · 4.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Cloud launch nightly
on:
schedule:
- cron: "17 2 * * *"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: cloud-launch-nightly-${{ github.ref }}
cancel-in-progress: false
env:
CARGO_INCREMENTAL: "0"
CARGO_TERM_COLOR: always
RUST_BACKTRACE: "1"
jobs:
planner-matrix:
name: Planner matrix shard ${{ matrix.shard }}
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
shard: [0, 1, 2, 3]
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.97.1
- uses: Swatinem/rust-cache@v2
- name: Run complete normalized planner shard
env:
HELIX_PLANNER_SHARD_COUNT: "4"
HELIX_PLANNER_SHARD_INDEX: ${{ matrix.shard }}
run: cargo run --release -p helix-db-testkit --example check_planner_matrix
fuzz:
name: Fuzz ${{ matrix.target }}
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- fuzz_dir: crates/db-testkit/fuzz
target: query_json
- fuzz_dir: crates/db-testkit/fuzz
target: planner_context_ast
- fuzz_dir: crates/db-testkit/fuzz
target: planner_interpreter
- fuzz_dir: crates/db-testkit/fuzz
target: stateful_action_trace
- fuzz_dir: crates/db/fuzz
target: current_secondary_records
- fuzz_dir: crates/db/fuzz
target: current_search_records
- fuzz_dir: crates/db/fuzz
target: current_index_v2_keys
- fuzz_dir: crates/db/fuzz
target: current_index_v2_records
- fuzz_dir: crates/db/fuzz
target: current_index_v2_work
- fuzz_dir: crates/db/fuzz
target: current_index_v2_bitmap
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
with:
workspaces: ${{ matrix.fuzz_dir }} -> target
- run: cargo install cargo-fuzz --version 0.13.2 --locked
- name: Run checked-in regression corpus and five-minute fuzz window
working-directory: ${{ matrix.fuzz_dir }}
run: cargo fuzz run ${{ matrix.target }} -- -max_total_time=300
workload-matrix:
name: Deterministic workload seeds
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.97.1
- uses: Swatinem/rust-cache@v2
- name: Nightly lifecycle histories
run: >-
cargo test -p helix-db-testkit
lifecycle_workload::tests::nightly_seed_matrix_runs_long_multi_index_histories
-- --ignored --exact
- name: Oversized V4 bitmap cleanup and reopen
run: >-
cargo test -p db
index_lifecycle::secondary::tests::oversized_v4_bitmap_cleanup_survives_reopen_at_default_limit
-- --ignored --exact --nocapture
- name: Real LocalFileSystem matrix
run: cargo test -p helix-db-testkit --test sustained_local_disk
- name: Isolation and transport restart contracts
run: cargo test -p helix-db-testkit --test isolation_histories && cargo test -p server
vector-lifecycle:
name: Bounded 8k vector lifecycle
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.97.1
- uses: Swatinem/rust-cache@v2
- name: Public vector create, search, drop, and residue contract
run: >-
cargo test --release -p db --features production-scale
--test production_index_lifecycle_scale index_lifecycle_vector_ci_contract
-- --exact --nocapture --test-threads=1
coverage:
name: ${{ matrix.name }}
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: Planner all-target coverage
script: scripts/workspace-coverage.sh planner
- name: DB all-target coverage
script: scripts/workspace-coverage.sh db
- name: DB production coverage
script: scripts/db-production-coverage.sh
- name: Server production coverage
script: scripts/server-production-coverage.sh
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.97.1
with:
components: llvm-tools-preview
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-llvm-cov
- run: ${{ matrix.script }}