Updated workflow to setup database
This commit is contained in:
@@ -2,25 +2,63 @@ name: Rust CI
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "v0.2" ] # Changed from main to master
|
branches: [ "v0.2" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "v0.2" ] # Changed from main to master
|
branches: [ "v0.2" ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
POSTGRES_VERSION: "17.4"
|
||||||
|
POSTGRES_USER: "postgres"
|
||||||
|
POSTGRES_DB: "icarus_db"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:${{ env.POSTGRES_VERSION }}
|
||||||
|
env:
|
||||||
|
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
|
||||||
|
POSTGRES_USER: ${{ env.POSTGRES_USER }}
|
||||||
|
POSTGRES_DB: ${{ env.POSTGRES_DB }}
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
options: >-
|
||||||
|
--health-cmd pg_isready
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Rust 1.86.0
|
- name: Install Rust 1.86.0
|
||||||
uses: actions-rs/toolchain@v1
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: 1.86.0
|
toolchain: 1.86.0
|
||||||
components: clippy, rustfmt
|
components: clippy, rustfmt
|
||||||
override: true
|
override: true
|
||||||
|
|
||||||
- name: Cache dependencies
|
- name: Cache dependencies
|
||||||
uses: Swatinem/rust-cache@v2
|
uses: Swatinem/rust-cache@v2
|
||||||
|
|
||||||
|
- name: Install libpq
|
||||||
|
run: sudo apt-get install -y libpq-dev
|
||||||
|
|
||||||
|
- name: Setup test database
|
||||||
|
env:
|
||||||
|
DATABASE_URL: "postgres://${{ env.POSTGRES_USER }}:${{ secrets.POSTGRES_PASSWORD }}@localhost:5432/${{ env.POSTGRES_DB }}"
|
||||||
|
run: |
|
||||||
|
# Wait for PostgreSQL to be ready
|
||||||
|
for i in {1..10}; do
|
||||||
|
pg_isready -U $POSTGRES_USER -d $POSTGRES_DB && break
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
# Run database migrations (if you use sqlx migrations)
|
||||||
|
cargo install sqlx-cli --no-default-features --features native-tls,postgres
|
||||||
|
sqlx migrate run --database-url $DATABASE_URL
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
@@ -30,9 +68,14 @@ jobs:
|
|||||||
eval $(ssh-agent -s)
|
eval $(ssh-agent -s)
|
||||||
ssh-add -v ~/.ssh/gitea_deploy_key
|
ssh-add -v ~/.ssh/gitea_deploy_key
|
||||||
cargo build --verbose --release
|
cargo build --verbose --release
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
|
env:
|
||||||
|
DATABASE_URL: "postgres://${{ env.POSTGRES_USER }}:${{ secrets.POSTGRES_PASSWORD }}@localhost:5432/${{ env.POSTGRES_DB }}"
|
||||||
run: cargo test --verbose
|
run: cargo test --verbose
|
||||||
|
|
||||||
- name: Run clippy
|
- name: Run clippy
|
||||||
run: cargo clippy -- -D warnings
|
run: cargo clippy -- -D warnings
|
||||||
|
|
||||||
- name: Run rustfmt
|
- name: Run rustfmt
|
||||||
run: cargo fmt --all -- --check
|
run: cargo fmt --all -- --check
|
||||||
Reference in New Issue
Block a user