Skip to content

Commit cc2ad8b

Browse files
author
masoud@anyscale.com
committed
feat: Add Docker, uv, rust-toolchain for reproducible builds
- Add Dockerfile with multi-stage build (CUDA + Rust + Python) - Add docker-compose.yml for dev/test/gpu services - Add rust-toolchain.toml pinning nightly-2024-12-01 - Add pyproject.toml with uv for Python dependency management - Commit Cargo.lock and uv.lock for reproducible builds - Update CI to verify Docker build works - Update README with Docker quickstart Relates to #10 (GPU acceleration)
1 parent deb8236 commit cc2ad8b

File tree

12 files changed

+5007
-18
lines changed

12 files changed

+5007
-18
lines changed

.dockerignore

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Git
2+
.git
3+
.gitignore
4+
5+
# Build artifacts
6+
target/
7+
zkml/target/
8+
*.pyc
9+
__pycache__/
10+
.pytest_cache/
11+
*.egg-info/
12+
13+
# IDE
14+
.vscode/
15+
.idea/
16+
*.swp
17+
*.swo
18+
19+
# OS
20+
.DS_Store
21+
Thumbs.db
22+
23+
# Params (large files, should be mounted or downloaded)
24+
params/
25+
params_kzg/
26+
params_ipa/
27+
*.params
28+
29+
# Proofs (generated at runtime)
30+
proof
31+
proof_output/
32+
*.bin
33+
34+
# Virtual environments
35+
.venv/
36+
venv/
37+
env/
38+
39+
# Documentation
40+
docs/
41+
*.md
42+
!README.md
43+
44+
# CI/CD
45+
.github/
46+

.github/workflows/ci.yml

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ jobs:
2020
uses: actions/checkout@v4
2121

2222
- name: Install Rust toolchain
23-
uses: dtolnay/rust-toolchain@nightly
23+
uses: dtolnay/rust-toolchain@master
2424
with:
25+
toolchain: nightly-2024-12-01
2526
components: rustfmt, clippy
2627

2728
- name: Cache cargo registry
@@ -64,6 +65,31 @@ jobs:
6465
run: cargo clippy --lib -- -W clippy::all || echo "::warning::Clippy warnings found (non-blocking)"
6566
continue-on-error: true
6667

67-
# Note: AWS tests are intentionally excluded from CI to save costs.
68-
# Run them manually with: cd tests/aws && python gpu_test.py
68+
# Docker build - only runs when Docker-related files change
69+
docker-build:
70+
name: Docker Build
71+
runs-on: ubuntu-latest
72+
if: |
73+
contains(github.event.pull_request.title, 'docker') ||
74+
contains(github.event.pull_request.title, 'Docker') ||
75+
contains(github.event.head_commit.message, 'docker') ||
76+
contains(github.event.head_commit.message, 'Docker')
77+
78+
steps:
79+
- name: Checkout code
80+
uses: actions/checkout@v4
81+
82+
- name: Set up Docker Buildx
83+
uses: docker/setup-buildx-action@v3
84+
85+
- name: Build dev image
86+
uses: docker/build-push-action@v5
87+
with:
88+
context: .
89+
target: dev
90+
push: false
91+
cache-from: type=gha
92+
cache-to: type=gha,mode=max
93+
tags: distributed-zkml:dev
6994

95+
# Note: AWS/GPU tests are intentionally excluded from CI to save costs.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Rust
22
target/
3-
Cargo.lock
3+
# Cargo.lock is committed for reproducible builds (removed from ignore)
44

55
# Python
66
__pycache__/

0 commit comments

Comments
 (0)