Skip to content

Commit 78c76f5

Browse files
committed
feat: some CI for all this
1 parent 3801d20 commit 78c76f5

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

.github/workflows/ci.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Docker Compose CI
2+
on:
3+
push:
4+
branches: [ main ]
5+
pull_request:
6+
7+
jobs:
8+
smoke-test:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v3
13+
14+
- name: Install Docker Compose (v2)
15+
run: |
16+
sudo apt-get update
17+
sudo apt-get install -y wget
18+
if ! command -v docker-compose &> /dev/null; then
19+
sudo curl -L \
20+
"https://github.com/docker/compose/releases/download/v2.21.2/docker-compose-$(uname -s)-$(uname -m)" \
21+
-o /usr/local/bin/docker-compose
22+
sudo chmod +x /usr/local/bin/docker-compose
23+
fi
24+
25+
- name: Build & start services
26+
run: docker-compose up -d --build
27+
28+
- name: Wait for PostgreSQL
29+
run: |
30+
for i in $(seq 1 15); do
31+
docker-compose exec -T postgres pg_isready -U ducklake && break
32+
echo "Waiting for PostgreSQL..."
33+
sleep 2
34+
done
35+
36+
- name: Wait for MinIO
37+
run: |
38+
for i in $(seq 1 15); do
39+
curl -f http://localhost:9000/minio/health/live && break
40+
echo "Waiting for MinIO..."
41+
sleep 2
42+
done
43+
44+
- name: Run DuckLake smoke-test
45+
run: |
46+
docker-compose exec -T ducklake-init duckdb -c "\
47+
INSTALL ducklake; \
48+
INSTALL postgres; \
49+
ATTACH 'ducklake:postgres:dbname=ducklake_catalog host=postgres user=ducklake password=ducklake' AS the_ducklake (DATA_PATH 's3://ducklake/lake/'); \
50+
USE the_ducklake; \
51+
SELECT count(*) FROM ducklake.schema; \
52+
"
53+
54+
- name: Tear down
55+
if: always()
56+
run: docker-compose down -v

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Quack: DuckLake Local Deployment
2+
[![CI](https://github.com/MattOates/quack/actions/workflows/ci.yml/badge.svg)](https://github.com/MattOates/quack/actions/workflows/ci.yml)
23

34
This repository provides a Docker Compose setup to run a local DuckLake lakehouse stack using PostgreSQL as the catalog database and MinIO as S3-compatible object storage. It leverages the DuckLake extensions for DuckDB to bootstrap or attach to an existing lakehouse automatically.
45

0 commit comments

Comments
 (0)