Skip to content

Commit 0463cd8

Browse files
committed
ci(backend): 启用SQLx离线模式并优化CI缓存
在CI配置中启用SQLx离线模式,避免编译时需要数据库连接。同时添加缓存步骤以加速依赖下载和构建过程。
1 parent b3b49eb commit 0463cd8

1 file changed

Lines changed: 35 additions & 3 deletions

File tree

.github/workflows/backend.yml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ env:
1010
CARGO_TERM_COLOR: always
1111
BINARY_NAME: backend
1212
DATABASE_URL: ${{ secrets.DATABASE_URL }}
13+
# Enable SQLx offline mode to avoid requiring a database connection during compilation
14+
SQLX_OFFLINE: true
1315

1416
jobs:
1517
test:
@@ -23,12 +25,26 @@ jobs:
2325
profile: minimal
2426
toolchain: stable
2527
override: true
28+
- name: Cache Rust dependencies
29+
uses: actions/cache@v3
30+
with:
31+
path: |
32+
~/.cargo/registry
33+
~/.cargo/git
34+
backend/target
35+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
36+
restore-keys: ${{ runner.os }}-cargo-
2637
- name: Install SQLx CLI
2738
run: cargo install sqlx-cli --no-default-features --features postgres
39+
- name: Create .sqlx directory if it doesn't exist
40+
run: mkdir -p backend/.sqlx
2841
- name: Generate SQLx metadata
29-
run: cd backend && cargo sqlx prepare --check -- --tests
42+
run: cd backend && cargo sqlx prepare -- --tests
43+
env:
44+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
45+
SQLX_OFFLINE: true
3046
- name: Run tests
31-
run: cd backend && cargo test --verbose
47+
run: cd backend && cargo test --verbose --features sqlx/offline
3248

3349
build:
3450
name: Build ${{ matrix.target.name }}
@@ -60,8 +76,24 @@ jobs:
6076
target: ${{ matrix.target.target }}
6177
override: true
6278

79+
- name: Cache Rust dependencies
80+
uses: actions/cache@v3
81+
with:
82+
path: |
83+
~/.cargo/registry
84+
~/.cargo/git
85+
backend/target
86+
key: ${{ runner.os }}-${{ matrix.target.target }}-cargo-${{ hashFiles('**/Cargo.lock') }}
87+
restore-keys: ${{ runner.os }}-${{ matrix.target.target }}-cargo-
88+
89+
- name: Create .sqlx directory if it doesn't exist
90+
run: mkdir -p backend/.sqlx
91+
6392
- name: Generate SQLx metadata
64-
run: cd backend && cargo sqlx prepare --check -- --tests
93+
run: cd backend && cargo sqlx prepare -- --tests
94+
env:
95+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
96+
SQLX_OFFLINE: true
6597

6698
- name: Build release binary
6799
run: |

0 commit comments

Comments
 (0)