Files
real-time-fund/.github/workflows/docker-ci.yml
2026-02-21 12:54:14 +08:00

72 lines
2.0 KiB
YAML

name: Docker CI
on:
push:
branches:
- main
pull_request:
jobs:
dockerfile-check:
name: Build & Test Dockerfile
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Create .env.local
run: |
cat << 'EOF' > .env.local
NEXT_PUBLIC_SUPABASE_URL=${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}
NEXT_PUBLIC_SUPABASE_ANON_KEY=${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}
NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=${{ secrets.NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY }}
NEXT_PUBLIC_GA_ID=${{ secrets.NEXT_PUBLIC_GA_ID }}
EOF
- name: Build Dockerfile image
run: docker build -t real-time-fund .
- name: Run Dockerfile container
run: |
docker run -d --name fund -p 3000:3000 real-time-fund
echo "Waiting 10 seconds for the container to start..."
sleep 10
- name: Test service
run: |
curl -f http://localhost:3000 || (docker logs fund && exit 1)
- name: Cleanup
run: |
docker stop fund
docker rm fund
docker-compose-check:
name: Build & Test Docker Compose
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Create .env.local
run: |
cat << 'EOF' > .env.local
NEXT_PUBLIC_SUPABASE_URL=${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}
NEXT_PUBLIC_SUPABASE_ANON_KEY=${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}
NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=${{ secrets.NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY }}
NEXT_PUBLIC_GA_ID=${{ secrets.NEXT_PUBLIC_GA_ID }}
EOF
- name: Docker Compose up
run: |
docker compose up -d --build
echo "Waiting 10 seconds for services to start..."
sleep 10
- name: Test app service
run: |
curl -f http://localhost:3000 || (docker compose logs app && exit 1)
- name: Cleanup
run: docker compose down