Skip to content

Commit 3020659

Browse files
committed
feat(docker): improve testing workflow with environment variables
- feat(docker-compose): use LIFEFORGE_TAG env var for flexible image selection - feat(script): default to 'main' tag instead of hardcoded pr-93-review - feat(script): add helpful commands and version switching examples - ci(docker): add concurrency control to prevent simultaneous builds - docs(compose): add comprehensive usage examples in comments Now you can easily test different versions: LIFEFORGE_TAG=main docker-compose -f docker-compose.images.yaml up LIFEFORGE_TAG=pr-93-review docker-compose -f docker-compose.images.yaml up ./scripts/test-docker-images.sh main
1 parent cc5ea4c commit 3020659

3 files changed

Lines changed: 35 additions & 10 deletions

File tree

.github/workflows/docker.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ on:
88
branches: [main]
99
workflow_dispatch:
1010

11+
# Prevent multiple simultaneous builds for the same ref
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
1116
env:
1217
REGISTRY: ghcr.io
1318
IMAGE_PREFIX: ${{ github.repository_owner }}/lifeforge

docker-compose.images.yaml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
# Docker Compose for testing pre-built images from GitHub Container Registry
2-
# Usage: docker-compose -f docker-compose.images.yaml up
2+
#
3+
# Usage:
4+
# # Use main branch images (default)
5+
# docker-compose -f docker-compose.images.yaml up
6+
#
7+
# # Use specific tag/branch
8+
# LIFEFORGE_TAG=pr-93-review docker-compose -f docker-compose.images.yaml up
9+
#
10+
# # Use latest
11+
# LIFEFORGE_TAG=latest docker-compose -f docker-compose.images.yaml up
12+
#
13+
# # Use specific version
14+
# LIFEFORGE_TAG=v1.0.0 docker-compose -f docker-compose.images.yaml up
315

416
services:
517
db:
6-
image: ghcr.io/voioo/lifeforge-db:pr-93-review
18+
image: ghcr.io/voioo/lifeforge-db:${LIFEFORGE_TAG:-main}
719
container_name: lifeforge-db
820
restart: unless-stopped
921
env_file:
@@ -24,7 +36,7 @@ services:
2436
start_period: 10s
2537

2638
db-init:
27-
image: ghcr.io/voioo/lifeforge-server:pr-93-review
39+
image: ghcr.io/voioo/lifeforge-server:${LIFEFORGE_TAG:-main}
2840
container_name: lifeforge-db-init
2941
env_file:
3042
- ./env/.env.docker
@@ -43,7 +55,7 @@ services:
4355
entrypoint: ["/bin/sh", "-c", "echo 'DB init would run here'"]
4456

4557
server:
46-
image: ghcr.io/voioo/lifeforge-server:pr-93-review
58+
image: ghcr.io/voioo/lifeforge-server:${LIFEFORGE_TAG:-main}
4759
container_name: lifeforge-server
4860
restart: unless-stopped
4961
env_file:
@@ -62,7 +74,7 @@ services:
6274
condition: service_completed_successfully
6375

6476
client:
65-
image: ghcr.io/voioo/lifeforge-client:pr-93-review
77+
image: ghcr.io/voioo/lifeforge-client:${LIFEFORGE_TAG:-main}
6678
container_name: lifeforge-client
6779
restart: unless-stopped
6880
ports:

scripts/test-docker-images.sh

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22

33
# Test script for pulling and running pre-built Docker images from GitHub Container Registry
44
# Usage: ./scripts/test-docker-images.sh [tag]
5-
# Default tag: pr-93-review
5+
# Default tag: main
66

77
set -e
88

9-
TAG=${1:-pr-93-review}
9+
TAG=${1:-main}
1010
REPO_OWNER="voioo"
1111

1212
echo "🐳 Testing LifeForge Docker Images"
1313
echo "==================================="
1414
echo "Tag: $TAG"
15+
echo "Registry: ghcr.io/${REPO_OWNER}"
1516
echo ""
1617

1718
# Check if docker is installed
@@ -56,9 +57,11 @@ if [ ! -f "./env/.env.docker" ]; then
5657
fi
5758
fi
5859

59-
# Start services
60+
# Stop any existing containers
6061
docker-compose -f docker-compose.images.yaml down 2>/dev/null || true
61-
docker-compose -f docker-compose.images.yaml up -d
62+
63+
# Start services with the specified tag
64+
LIFEFORGE_TAG=${TAG} docker-compose -f docker-compose.images.yaml up -d
6265

6366
echo ""
6467
echo "⏳ Waiting for services to start..."
@@ -80,9 +83,14 @@ echo ""
8083
echo "📝 Useful Commands:"
8184
echo " - View logs: docker-compose -f docker-compose.images.yaml logs -f"
8285
echo " - Stop: docker-compose -f docker-compose.images.yaml down"
83-
echo " - Restart: docker-compose -f docker-compose.images.yaml restart"
86+
echo " - Restart: LIFEFORGE_TAG=${TAG} docker-compose -f docker-compose.images.yaml restart"
8487
echo ""
8588

8689
echo "✅ Setup complete! LifeForge should be available at http://localhost"
8790
echo ""
8891
echo "⚠️ Note: First startup may take a few minutes as the database initializes."
92+
echo ""
93+
echo "🔄 To test a different version:"
94+
echo " ./scripts/test-docker-images.sh pr-93-review"
95+
echo " ./scripts/test-docker-images.sh v1.0.0"
96+
echo " ./scripts/test-docker-images.sh latest"

0 commit comments

Comments
 (0)