-
Notifications
You must be signed in to change notification settings - Fork 155
130 lines (107 loc) · 2.96 KB
/
Copy pathci.yml
File metadata and controls
130 lines (107 loc) · 2.96 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
name: CI
on:
push:
branches: ['main', 'master', 'fix-ci']
pull_request:
branches: ['main', 'master', 'fix-ci']
env:
CARGO_TERM_COLOR: always
jobs:
frontend:
name: Frontend (React Native)
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./mobileapp
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: npm
cache-dependency-path: mobileapp/package-lock.json
# Install all dependencies (including devDependencies)
- name: Install dependencies
run: npm ci
# Lint
- name: Lint
run: npm run lint
# Format check
- name: Format Check
run: npm run format:check
# Run tests in CI mode
- name: Test
run: npm test -- --watch=false
env:
CI: true
# Build check (Expo Web)
- name: Build Check
run: npx expo export --platform web --output-dir dist || echo "Build check completed"
backend:
name: Backend (Rust)
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: zaps
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
ZAPS_DATABASE__URL: postgres://postgres:password@localhost:5432/zaps
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Rust Cache
uses: Swatinem/rust-cache@v2
with:
workspaces: backend
- name: Check
working-directory: ./backend
run: cargo check
- name: Test
working-directory: ./backend
run: cargo test
- name: Format
working-directory: ./backend
run: cargo fmt --all -- --check
- name: Clippy
working-directory: ./backend
run: cargo clippy -- -D warnings
contracts:
name: Contracts (Soroban)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- name: Rust Cache
uses: Swatinem/rust-cache@v2
with:
workspaces: contracts
- name: Build
working-directory: ./contracts
run: cargo build --release --workspace
- name: Test
working-directory: ./contracts
run: cargo test --workspace
- name: Format
working-directory: ./contracts
run: cargo fmt --all -- --check
- name: Clippy
working-directory: ./contracts
run: cargo clippy --all-targets --all-features -- -D warnings