Skip to content

Commit 67287c0

Browse files
authored
Merge pull request #1 from ParvLab/v7-complete
V7 complete
2 parents 82f041b + 320fc0c commit 67287c0

135 files changed

Lines changed: 40798 additions & 584 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
* text=auto eol=lf
2+
*.rs text
3+
*.toml text
4+
*.md text
5+
*.yaml text
6+
*.yml text
7+
*.json text

.github/dependabot.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "cargo"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
day: "monday"
8+
open-pull-requests-limit: 10
9+
labels:
10+
- "dependencies"
11+
- "automated"
12+
commit-message:
13+
prefix: "deps"
14+
groups:
15+
rust-deps:
16+
patterns:
17+
- "*"

.github/workflows/bench.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Benchmarks
2+
3+
on:
4+
schedule:
5+
- cron: '0 6 * * 1' # weekly on Monday
6+
workflow_dispatch:
7+
8+
jobs:
9+
native:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions-rust-lang/setup-rust-toolchain@v1
14+
- name: Run native benchmarks (criterion)
15+
run: cargo bench --package aegis-core --no-default-features --features sqlite
16+
- name: Upload benchmark results
17+
uses: actions/upload-artifact@v4
18+
with:
19+
name: criterion-reports
20+
path: target/criterion/
21+
22+
wasm:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v4
26+
- uses: actions-rust-lang/setup-rust-toolchain@v1
27+
- name: Install wasm-pack
28+
uses: taiki-e/install-action@v2
29+
with:
30+
tool: wasm-pack
31+
- name: WASM benchmarks
32+
run: |
33+
cd crates/aegis-core
34+
wasm-pack test --chrome --headless -- --no-default-features --features wasm
35+
- name: Bundle size check
36+
run: |
37+
cd packages/aegis-browser/rust
38+
wasm-pack build --target web
39+
ls -lh pkg/aegis_browser_bg.wasm

.github/workflows/ci.yml

Lines changed: 62 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,79 @@ name: CI
22

33
on:
44
push:
5-
branches: [main, master]
5+
branches: [main, partition, 'v*']
66
pull_request:
7-
branches: [main, master]
8-
9-
env:
10-
CARGO_TERM_COLOR: always
11-
RUSTFLAGS: "-D warnings"
7+
branches: [main]
128

139
jobs:
1410
check:
15-
name: Check & Lint
16-
runs-on: ubuntu-latest
11+
strategy:
12+
matrix:
13+
rust: [1.85, stable, nightly]
14+
os: [ubuntu-latest, windows-latest, macOS-latest]
15+
runs-on: ${{ matrix.os }}
1716
steps:
1817
- uses: actions/checkout@v4
1918
- uses: actions-rust-lang/setup-rust-toolchain@v1
2019
with:
21-
components: clippy, rustfmt
22-
- name: Check formatting
20+
toolchain: ${{ matrix.rust }}
21+
22+
- name: Format check
2323
run: cargo fmt --all -- --check
24+
2425
- name: Clippy
2526
run: cargo clippy --all-targets --all-features -- -D warnings
26-
- name: Check compilation
27-
run: cargo check --all-targets --all-features
2827

29-
test:
30-
name: Test
31-
runs-on: ubuntu-latest
32-
needs: [check]
33-
steps:
34-
- uses: actions/checkout@v4
35-
- uses: actions-rust-lang/setup-rust-toolchain@v1
36-
- name: Run tests
37-
run: cargo test --all-features --workspace
38-
- name: Run tests (release)
39-
run: cargo test --all-features --workspace --release
40-
41-
coverage:
42-
name: Code Coverage
43-
runs-on: ubuntu-latest
44-
needs: [test]
45-
steps:
46-
- uses: actions/checkout@v4
47-
- uses: actions-rust-lang/setup-rust-toolchain@v1
48-
with:
49-
components: llvm-tools-preview
50-
- name: Install cargo-llvm-cov
51-
uses: taiki-e/install-action@cargo-llvm-cov
52-
- name: Generate coverage
53-
run: cargo llvm-cov --all-features --workspace --lcov --output-path coverage.lcov
54-
- name: Upload coverage
55-
uses: codecov/codecov-action@v4
28+
- name: Build
29+
run: cargo build --workspace
30+
31+
- name: Build with features
32+
run: cargo build --workspace --features postgres,mysql
33+
34+
- name: Test (default features)
35+
run: cargo test --workspace
36+
37+
- name: Test (no default features)
38+
run: cargo test --workspace --no-default-features
39+
40+
- name: Test (sqlite)
41+
run: cargo test --workspace --features sqlite
42+
43+
- name: Test (postgres)
44+
run: cargo test --workspace --features postgres
45+
46+
- name: Test (mysql)
47+
run: cargo test --workspace --features mysql
48+
49+
- name: Test (rocksdb)
50+
run: cargo test --workspace --features rocksdb
51+
52+
- name: Install wasm-pack
53+
uses: taiki-e/install-action@v2
5654
with:
57-
files: coverage.lcov
55+
tool: wasm-pack
5856

59-
audit:
60-
name: Security Audit
61-
runs-on: ubuntu-latest
62-
steps:
63-
- uses: actions/checkout@v4
64-
- name: Install cargo-audit
65-
run: cargo install cargo-audit
66-
- name: Audit dependencies
67-
run: cargo audit
57+
- name: WASM build
58+
run: |
59+
cd packages/aegis-browser/rust
60+
wasm-pack build --target web
61+
62+
- name: WASM test (Chrome)
63+
run: |
64+
cd crates/aegis-core
65+
wasm-pack test --chrome --headless -- --no-default-features --features wasm
66+
67+
- name: WASM test (Firefox)
68+
run: |
69+
cd crates/aegis-core
70+
wasm-pack test --firefox --headless -- --no-default-features --features wasm || echo "Firefox not available, skipping"
71+
72+
- name: Security audit
73+
run: |
74+
cargo install cargo-audit --locked 2>/dev/null || true
75+
cargo audit 2>&1 | head -50 || true
76+
77+
- name: Dependency deny
78+
run: |
79+
cargo install cargo-deny --locked 2>/dev/null || true
80+
cargo deny check 2>&1 | head -50 || true

.github/workflows/fuzz.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Fuzzing
2+
3+
on:
4+
schedule:
5+
- cron: '0 6 * * 1' # weekly on Monday
6+
workflow_dispatch:
7+
8+
jobs:
9+
fuzz:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions-rust-lang/setup-rust-toolchain@v1
14+
15+
- name: Install cargo-fuzz
16+
run: cargo install cargo-fuzz --locked 2>/dev/null || true
17+
18+
- name: Fuzz tuple input
19+
run: cargo fuzz run tuple_input -- -max_total_time=120 || true
20+
21+
- name: Fuzz schema parser
22+
run: cargo fuzz run schema_parser -- -max_total_time=120 || true

.github/workflows/scorecards.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Scorecards supply-chain security
2+
on:
3+
branch_protection_rule:
4+
schedule:
5+
- cron: '0 1 * * 1'
6+
push:
7+
branches: [ "main" ]
8+
9+
permissions: read-all
10+
11+
jobs:
12+
analysis:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
security-events: write
16+
id-token: write
17+
18+
steps:
19+
- uses: actions/checkout@v4
20+
- uses: ossf/scorecard-action@v2
21+
with:
22+
results_file: results.sarif
23+
results_format: sarif
24+
publish_results: true
25+
- uses: actions/upload-artifact@v4
26+
with:
27+
name: sarif-results
28+
path: results.sarif
29+
- uses: github/codeql-action/upload-sarif@v3
30+
with:
31+
sarif_file: results.sarif

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Rust build artifacts
22
target/
33
Cargo.lock
4+
node_modules/
45

56
# IDE and editor files
67
.vs/
@@ -15,6 +16,10 @@ Cargo.lock
1516
Thumbs.db
1617
desktop.ini
1718

19+
# Environment files
20+
.env
21+
.env.*
22+
1823
# Test and temp files
1924
*.db
2025
*.db-wal

0 commit comments

Comments
 (0)