88 workflow_dispatch :
99
1010jobs :
11+ check :
12+ name : Check & Lint
13+ runs-on : ubuntu-latest
14+ steps :
15+ - name : Checkout code
16+ uses : actions/checkout@v4
17+
18+ - name : Install Rust toolchain
19+ uses : dtolnay/rust-toolchain@master
20+ with :
21+ toolchain : nightly
22+ components : rustfmt, clippy
23+ targets : wasm32-unknown-unknown
24+
25+ - name : Check formatting
26+ run : cargo fmt --all -- --check
27+
28+ - name : Run clippy
29+ run : cargo clippy --all-targets --features ssr -- -D warnings
30+
31+ test :
32+ name : Test
33+ runs-on : ubuntu-latest
34+ needs : check
35+ services :
36+ postgres :
37+ image : postgres:15
38+ env :
39+ POSTGRES_USER : devuser
40+ POSTGRES_PASSWORD : devpassword
41+ POSTGRES_DB : devdb
42+ ports :
43+ - 5432:5432
44+ env :
45+ DATABASE_URL : postgres://devuser:devpassword@localhost:5432/devdb
46+ DB_HOST : localhost
47+ DB_PORT : 5432
48+ DB_USER : devuser
49+ steps :
50+ - name : Checkout code
51+ uses : actions/checkout@v4
52+
53+ - name : Install Rust toolchain
54+ uses : dtolnay/rust-toolchain@master
55+ with :
56+ toolchain : nightly
57+ targets : wasm32-unknown-unknown
58+
59+ - name : Wait for PostgreSQL
60+ run : |
61+ for i in {1..30}; do
62+ pg_isready -h $DB_HOST -p $DB_PORT -U $DB_USER && break
63+ sleep 1
64+ done
65+
66+ - name : Run migrations
67+ run : sqlx migrate run --database-url $DATABASE_URL
68+
69+ - name : Run tests
70+ run : cargo test --features ssr
71+
72+ build :
73+ name : Build WASM
74+ runs-on : ubuntu-latest
75+ needs : test
76+ steps :
77+ - name : Checkout code
78+ uses : actions/checkout@v4
79+
80+ - name : Install Rust toolchain
81+ uses : dtolnay/rust-toolchain@master
82+ with :
83+ toolchain : nightly
84+ targets : wasm32-unknown-unknown
85+
86+ - name : Install cargo-leptos
87+ run : cargo install cargo-leptos
88+
89+ - name : Build Leptos WASM
90+ run : cargo leptos build --release
1191 check :
1292 name : Check & Lint
1393 runs-on : ubuntu-latest
@@ -37,6 +117,20 @@ jobs:
37117 name : Test
38118 runs-on : ubuntu-latest
39119 needs : check
120+ services :
121+ postgres :
122+ image : postgres:15
123+ env :
124+ POSTGRES_USER : devuser
125+ POSTGRES_PASSWORD : devpassword
126+ POSTGRES_DB : devdb
127+ ports :
128+ - 5432:5432
129+ env :
130+ DATABASE_URL : postgres://devuser:devpassword@localhost:5432/devdb
131+ DB_HOST : localhost
132+ DB_PORT : 5432
133+ DB_USER : devuser
40134 steps :
41135 - name : Checkout code
42136 uses : actions/checkout@v4
@@ -47,6 +141,16 @@ jobs:
47141 toolchain : stable
48142 targets : wasm32-unknown-unknown
49143
144+ - name : Wait for PostgreSQL
145+ run : |
146+ for i in {1..30}; do
147+ pg_isready -h $DB_HOST -p $DB_PORT -U $DB_USER && break
148+ sleep 1
149+ done
150+
151+ - name : Run migrations
152+ run : sqlx migrate run --database-url $DATABASE_URL
153+
50154 - name : Run tests
51155 run : cargo test --features ssr
52156
0 commit comments