Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d7b65f9f6d |
@ -2,7 +2,7 @@ name: Deploy Stacks
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [master]
|
branches: [master, dev]
|
||||||
paths:
|
paths:
|
||||||
- 'stacks/**'
|
- 'stacks/**'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@ -11,7 +11,8 @@ env:
|
|||||||
STACKS_DIR: /var/core
|
STACKS_DIR: /var/core
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy-prod:
|
||||||
|
if: ${{ github.ref == 'refs/heads/master' }}
|
||||||
runs-on: ubuntu-prod
|
runs-on: ubuntu-prod
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@ -38,24 +39,74 @@ jobs:
|
|||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
|
|
||||||
STACK_DIR="${{ env.STACKS_DIR }}/$stack"
|
STACK_DIR="${{ env.STACKS_DIR }}/$stack"
|
||||||
mkdir -p "$STACK_DIR"
|
sudo mkdir -p "$STACK_DIR"
|
||||||
|
|
||||||
# Copy files
|
# Copy files
|
||||||
cp -r stacks/$stack/* "$STACK_DIR/"
|
sudo cp -r stacks/$stack/* "$STACK_DIR/"
|
||||||
|
|
||||||
# Create .env from template if exists
|
# Create .env from template if exists
|
||||||
if [ -f "$STACK_DIR/.env.template" ]; then
|
if [ -f "$STACK_DIR/.env.template" ]; then
|
||||||
envsubst < "$STACK_DIR/.env.template" > "$STACK_DIR/.env"
|
sudo envsubst < "$STACK_DIR/.env.template" > "$STACK_DIR/.env"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Deploy
|
# Deploy
|
||||||
cd "$STACK_DIR"
|
cd "$STACK_DIR"
|
||||||
docker compose pull --ignore-pull-failures 2>/dev/null || true
|
sudo docker compose pull --ignore-pull-failures 2>/dev/null || true
|
||||||
docker compose up -d --remove-orphans
|
sudo docker compose up -d --remove-orphans
|
||||||
|
|
||||||
echo "✅ Deployed $stack"
|
echo "✅ Deployed $stack"
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
|
|
||||||
- name: Show running containers
|
- name: Show running containers
|
||||||
run: docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | head -20
|
run: sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | head -20
|
||||||
|
|
||||||
|
deploy-dev:
|
||||||
|
if: ${{ github.ref == 'refs/heads/dev' }}
|
||||||
|
runs-on: ubuntu-dev:host
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: Find and deploy changed stacks
|
||||||
|
env:
|
||||||
|
DOMAIN: ${{ secrets.DOMAIN }}
|
||||||
|
run: |
|
||||||
|
# Find changed stacks
|
||||||
|
STACKS=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | grep '^stacks/' | cut -d'/' -f2 | sort -u || echo "")
|
||||||
|
|
||||||
|
if [ -z "$STACKS" ]; then
|
||||||
|
echo "No stacks changed, deploying all..."
|
||||||
|
STACKS=$(ls stacks/)
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Deploying: $STACKS"
|
||||||
|
|
||||||
|
for stack in $STACKS; do
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Deploying $stack..."
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
STACK_DIR="${{ env.STACKS_DIR }}/$stack"
|
||||||
|
sudo mkdir -p "$STACK_DIR"
|
||||||
|
|
||||||
|
# Copy files
|
||||||
|
sudo cp -r stacks/$stack/* "$STACK_DIR/"
|
||||||
|
|
||||||
|
# Create .env from template if exists
|
||||||
|
if [ -f "$STACK_DIR/.env.template" ]; then
|
||||||
|
sudo envsubst < "$STACK_DIR/.env.template" > "$STACK_DIR/.env"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Deploy
|
||||||
|
cd "$STACK_DIR"
|
||||||
|
sudo docker compose pull --ignore-pull-failures 2>/dev/null || true
|
||||||
|
sudo docker compose up -d --remove-orphans
|
||||||
|
|
||||||
|
echo "✅ Deployed $stack"
|
||||||
|
echo ""
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Show running containers
|
||||||
|
run: sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | head -20
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user