Skip to content

Commit 4b0b277

Browse files
committed
Add Docker CI workflow
Builds the image, starts the PG server in demo mode, and runs psql queries to verify semantic layer tables are accessible.
1 parent c5ee9c2 commit 4b0b277

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

.github/workflows/docker.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Docker
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'Dockerfile'
8+
- 'docker-entrypoint.sh'
9+
- '.dockerignore'
10+
- 'sidemantic/**'
11+
- 'pyproject.toml'
12+
pull_request:
13+
paths:
14+
- 'Dockerfile'
15+
- 'docker-entrypoint.sh'
16+
- '.dockerignore'
17+
- 'sidemantic/**'
18+
- 'pyproject.toml'
19+
20+
jobs:
21+
docker:
22+
name: Docker build and test
23+
runs-on: ubuntu-latest
24+
25+
steps:
26+
- uses: actions/checkout@v4
27+
28+
- name: Build image
29+
run: docker build -t sidemantic .
30+
31+
- name: Start server (demo mode)
32+
run: |
33+
docker run -d --name sidemantic-test -p 5433:5433 sidemantic --demo
34+
for i in $(seq 1 30); do
35+
if docker logs sidemantic-test 2>&1 | grep -q "Listening on"; then
36+
echo "Server ready"
37+
break
38+
fi
39+
echo "Waiting for server... ($i/30)"
40+
sleep 1
41+
done
42+
43+
- name: Verify server logs
44+
run: docker logs sidemantic-test 2>&1
45+
46+
- name: Install psql
47+
run: sudo apt-get update && sudo apt-get install -y postgresql-client
48+
49+
- name: Test basic query
50+
run: PGPASSWORD=any psql -h localhost -p 5433 -U any -d sidemantic -c "SELECT 1 AS test"
51+
52+
- name: Test semantic layer query
53+
run: PGPASSWORD=any psql -h localhost -p 5433 -U any -d sidemantic -c "SELECT * FROM semantic_layer.customers LIMIT 3"
54+
55+
- name: Test aggregation query
56+
run: PGPASSWORD=any psql -h localhost -p 5433 -U any -d sidemantic -c "SELECT region, customer_count FROM semantic_layer.customers GROUP BY region"
57+
58+
- name: Stop server
59+
if: always()
60+
run: docker stop sidemantic-test || true

0 commit comments

Comments
 (0)