forked from SoroLabs/soroscope
-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (83 loc) · 2.61 KB
/
Copy pathci.yml
File metadata and controls
89 lines (83 loc) · 2.61 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
name: SoroScope CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
# ------------------------------------------------------------------
# Job 1: Formatter Check (Rust)
# ------------------------------------------------------------------
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Check Formatting
run: cargo fmt --all -- --check
# ------------------------------------------------------------------
# Job 2: Clippy (Linting)
# ------------------------------------------------------------------
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
target: wasm32-unknown-unknown
- name: Install System Dependencies
run: sudo apt-get update && sudo apt-get install -y pkg-config libdbus-1-dev libudev-dev
- name: Install Soroban CLI
run: cargo install soroban-cli
- name: Run Clippy
run: cargo clippy --all-targets --all-features -- -D warnings
# ------------------------------------------------------------------
# Job 3: Tests (Unit & Integration)
# ------------------------------------------------------------------
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
target: wasm32-unknown-unknown
- name: Install System Dependencies
run: sudo apt-get update && sudo apt-get install -y pkg-config libdbus-1-dev libudev-dev
- name: Install Soroban CLI
run: cargo install soroban-cli
- name: Run Tests
run: cargo test
# ------------------------------------------------------------------
# Job 4: Frontend (Lint & Typecheck)
# ------------------------------------------------------------------
frontend:
name: Frontend Check
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./web
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'
cache-dependency-path: web/package-lock.json
- name: Install Dependencies
run: npm ci
- name: Lint
run: npm run lint
# - name: Build
# run: npm run build