Skip to content

Commit 80ea209

Browse files
authored
Merge pull request #33 from rhnvrm/feat-listobjects-v2
feat: implement Simple List API for S3 objects
2 parents e5f2047 + d92dedd commit 80ea209

File tree

12 files changed

+1160
-99
lines changed

12 files changed

+1160
-99
lines changed

.envrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Load the Nix development environment
2+
use flake
3+
4+
echo "✅ Environment loaded - Use 'just --list' to see available commands"

.github/workflows/go-test.yml

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,19 @@ jobs:
1010
test:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v2
13+
- name: Checkout code
14+
uses: actions/checkout@v4
1415

15-
- name: Set up Go
16-
uses: actions/setup-go@v2
17-
with:
18-
go-version: 1.15
19-
- name: Setup minio
20-
run: |
21-
docker run -d -p 9000:9000 --name minio \
22-
-e "MINIO_ACCESS_KEY=minioadmin" \
23-
-e "MINIO_SECRET_KEY=minioadmin" \
24-
-v /tmp/data:/data \
25-
-v /tmp/config:/root/.minio \
26-
minio/minio server /data
27-
28-
export AWS_ACCESS_KEY_ID=minioadmin
29-
export AWS_SECRET_ACCESS_KEY=minioadmin
30-
export AWS_EC2_METADATA_DISABLED=true
31-
32-
aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://testbucket
33-
34-
- name: Run Go Test
35-
run: go test -v ./...
36-
env:
37-
AWS_S3_BUCKET: testbucket
38-
AWS_S3_ACCESS_KEY: minioadmin
39-
AWS_S3_SECRET_KEY: minioadmin
40-
AWS_S3_ENDPOINT: http://127.0.0.1:9000
16+
- name: Install Nix
17+
uses: cachix/install-nix-action@v27
18+
with:
19+
nix_path: nixpkgs=channel:nixos-unstable
20+
21+
- name: Run Tests via Justfile
22+
env:
23+
AWS_S3_BUCKET: testbucket
24+
AWS_ACCESS_KEY_ID: minioadmin
25+
AWS_SECRET_ACCESS_KEY: minioadmin
26+
AWS_S3_ENDPOINT: http://127.0.0.1:9000
27+
AWS_EC2_METADATA_DISABLED: "true"
28+
run: nix develop --command just test-local

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,6 @@ tsconfig.json
2424
jsconfig.json
2525

2626
.env
27+
28+
# direnv
29+
.direnv

Justfile

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# SimpleS3 Development Commands
2+
3+
# Variables
4+
MINIO_CONTAINER_NAME := "simples3-minio"
5+
MINIO_DATA_DIR := ".minio-data"
6+
AWS_S3_BUCKET := "testbucket"
7+
8+
# Default command - lists all available recipes
9+
default:
10+
@just --list
11+
12+
# --- Development Commands ---
13+
test:
14+
@echo "🧪 Running all tests..."
15+
@go test -v ./...
16+
17+
test-local: setup
18+
@echo "🧪 Running tests with local MinIO..."
19+
@sleep 2
20+
@go test -v ./...
21+
22+
23+
# --- Go Module Management ---
24+
tidy:
25+
@echo "📦 Tidying Go modules..."
26+
@go mod tidy
27+
28+
fmt:
29+
@echo "🎨 Formatting Go code..."
30+
@go fmt ./...
31+
32+
vet:
33+
@echo "🔍 Running go vet..."
34+
@go vet ./...
35+
36+
# --- MinIO Management ---
37+
minio-up:
38+
@echo "🚀 Starting MinIO container..."
39+
@docker compose up -d
40+
@echo "✅ MinIO started:"
41+
@echo " API: http://localhost:9000"
42+
@echo " Console: http://localhost:9001"
43+
@echo " Access Key: minioadmin"
44+
@echo " Secret Key: minioadmin"
45+
46+
minio-down:
47+
@echo "🛑 Stopping MinIO container..."
48+
@docker compose down
49+
50+
minio-logs:
51+
@echo "📋 Showing MinIO logs..."
52+
@docker compose logs -f
53+
54+
minio-clean:
55+
@echo "🧹 Cleaning MinIO data..."
56+
@docker compose down --volumes
57+
58+
minio-reset: minio-clean minio-up
59+
60+
# --- Development Environment Setup ---
61+
setup: minio-up
62+
@echo "⚙️ Setting up development environment..."
63+
@sleep 3
64+
@aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://{{AWS_S3_BUCKET}} || true
65+
@echo "✅ Development environment ready!"
66+
67+
dev-env: setup
68+
@echo "🎯 Development environment active!"
69+
@echo " MinIO: http://localhost:9000"
70+
@echo " Console: http://localhost:9001"
71+
@echo " Bucket: {{AWS_S3_BUCKET}}"
72+
73+
# --- Cleanup Commands ---
74+
clean:
75+
@echo "🧹 Cleaning up development environment..."
76+
@docker compose down --volumes
77+
78+
# --- Helper Commands ---
79+
status:
80+
@echo "📊 Status Check:"
81+
@echo " MinIO Container: $(docker ps -q -f name={{MINIO_CONTAINER_NAME}} | wc -l | tr -d ' ') running"
82+
@if [ "$(docker ps -q -f name={{MINIO_CONTAINER_NAME}})" ]; then \
83+
echo " MinIO URL: http://localhost:9000"; \
84+
echo " Console URL: http://localhost:9001"; \
85+
fi
86+
@echo " Go version: $(go version | awk '{print $3}')"
87+
88+
# --- Documentation ---
89+
docs:
90+
@echo "📖 Opening documentation..."
91+
@echo " Plan: PLAN.md"
92+
@echo " README: README.md"

0 commit comments

Comments
 (0)