fix(ci): redesign deploy workflow for containerized Act Runner
Some checks failed
Deploy to Production / deploy (push) Failing after 1m14s
Some checks failed
Deploy to Production / deploy (push) Failing after 1m14s
- Install Docker CLI + Compose plugin in job container - Remove rsync dependency (work directly from checkout workspace) - Use --project-name for consistent compose project naming - Use --env-file for compose variable substitution - Use docker exec for health checks (job container can't reach host ports) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
39d2226d95
commit
f43f26f43c
@ -11,6 +11,15 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Docker CLI
|
||||
run: |
|
||||
apt-get update -qq && apt-get install -y -qq docker.io >/dev/null 2>&1
|
||||
mkdir -p ~/.docker/cli-plugins
|
||||
curl -fsSL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" \
|
||||
-o ~/.docker/cli-plugins/docker-compose
|
||||
chmod +x ~/.docker/cli-plugins/docker-compose
|
||||
docker compose version
|
||||
|
||||
- name: Create .env.prod from secrets
|
||||
run: |
|
||||
cat <<EOF > .env.prod
|
||||
@ -27,30 +36,16 @@ jobs:
|
||||
|
||||
- name: Deploy with Docker Compose
|
||||
run: |
|
||||
DEPLOY_DIR=~/docker/galaxis-po
|
||||
|
||||
mkdir -p "$DEPLOY_DIR"
|
||||
|
||||
rsync -av --delete \
|
||||
--exclude '.git' \
|
||||
--exclude 'node_modules' \
|
||||
--exclude '__pycache__' \
|
||||
--exclude '.venv' \
|
||||
--exclude '.next' \
|
||||
./ "$DEPLOY_DIR/"
|
||||
|
||||
cd "$DEPLOY_DIR"
|
||||
|
||||
docker compose -f docker-compose.prod.yml build
|
||||
docker compose -f docker-compose.prod.yml down
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
docker compose --project-name galaxis-po --env-file .env.prod -f docker-compose.prod.yml down || true
|
||||
docker compose --project-name galaxis-po --env-file .env.prod -f docker-compose.prod.yml build
|
||||
docker compose --project-name galaxis-po --env-file .env.prod -f docker-compose.prod.yml up -d
|
||||
|
||||
- name: Health check
|
||||
run: |
|
||||
echo "Waiting for services to start..."
|
||||
sleep 15
|
||||
docker compose -f ~/docker/galaxis-po/docker-compose.prod.yml ps
|
||||
curl -sf http://127.0.0.1:3000 > /dev/null || { echo "Frontend: FAILED"; exit 1; }
|
||||
echo "Frontend: OK"
|
||||
sleep 20
|
||||
docker compose --project-name galaxis-po --env-file .env.prod -f docker-compose.prod.yml ps
|
||||
docker exec galaxis-po-backend python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" || { echo "Backend: FAILED"; exit 1; }
|
||||
echo "Backend: OK"
|
||||
docker exec galaxis-po-frontend wget -q --spider http://localhost:3000/ || { echo "Frontend: FAILED"; exit 1; }
|
||||
echo "Frontend: OK"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user