Skip to content

Commit cae1705

Browse files
authored
Add FastAPI and Vue startup workflows (#6)
* add FastAPI and Vue startup workflows * add env variables to fast-api.yml
1 parent aedcd7a commit cae1705

2 files changed

Lines changed: 82 additions & 0 deletions

File tree

.github/workflows/fast-api.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: FastAPI Start Check
2+
3+
on: [push]
4+
5+
jobs:
6+
fastapi-start:
7+
runs-on: ubuntu-latest
8+
9+
steps:
10+
- name: Checkout repository
11+
uses: actions/checkout@v4
12+
13+
- name: Set up Python
14+
uses: actions/setup-python@v6
15+
with:
16+
python-version: "3.14"
17+
18+
- name: Start database using docker-compose
19+
run: |
20+
docker compose up -d db
21+
22+
- name: Wait for Postgres to become ready
23+
run: |
24+
for i in {1..20}; do
25+
if docker exec inquiro_db pg_isready -U inquiro; then
26+
echo "Postgres is ready!"
27+
break
28+
fi
29+
echo "Waiting for Postgres..."
30+
sleep 2
31+
done
32+
33+
- name: Install backend dependencies
34+
working-directory: backend
35+
run: |
36+
python -m pip install --upgrade pip
37+
pip install -r requirements.txt
38+
39+
- name: Start FastAPI to verify it boots
40+
working-directory: backend
41+
env:
42+
POSTGRES_USER: inquiro
43+
POSTGRES_PASSWORD: inquiro
44+
POSTGRES_DB: inquiro_db
45+
POSTGRES_HOST: localhost
46+
POSTGRES_PORT: "5433"
47+
JWT_SECRET_KEY: "3e3cc0b2f8b54b3d6aa597faccb2f9c41b19b1c24befe29661bafbd42e3afe3e"
48+
DATABASE_URL: "postgresql://inquiro:inquiro@localhost:5433/inquiro_db"
49+
run: |
50+
uvicorn app.main:app --host 0.0.0.0 --port 8000 &
51+
PID=$!
52+
sleep 5
53+
if ! ps -p $PID > /dev/null; then
54+
echo "❌ FastAPI failed to start."
55+
exit 1
56+
fi
57+
echo "✅ FastAPI started successfully"
58+
kill $PID

.github/workflows/vue-build.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Vue Build
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
9+
steps:
10+
- name: Checkout repository
11+
uses: actions/checkout@v4
12+
13+
- name: Set up Node
14+
uses: actions/setup-node@v4
15+
with:
16+
node-version: "22"
17+
18+
- name: Install dependencies
19+
working-directory: frontend
20+
run: npm install
21+
22+
- name: Build Vue app
23+
working-directory: frontend
24+
run: npm run build

0 commit comments

Comments
 (0)