Skip to content

Commit df2e9e6

Browse files
committed
add container database
1 parent 9ba790b commit df2e9e6

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

.github/workflows/ci-cd.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,86 @@ on:
88
workflow_dispatch:
99

1010
jobs:
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

Comments
 (0)