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
1416jobs :
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 }}
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