refactored deployment phase
Some checks failed
Build and Deploy Demo App / test (push) Successful in 11s
Build and Deploy Demo App / build (push) Successful in 7s
Build and Deploy Demo App / scan (push) Successful in 18s
Build and Deploy Demo App / deploy (push) Failing after 25s

This commit is contained in:
2025-11-26 13:32:13 +03:30
parent 35522c3f8d
commit e6921d00f5

View File

@@ -23,7 +23,7 @@ jobs:
- name: Run tests - name: Run tests
env: env:
DB_USER: "" # force SQLite fallback DB_USER: "" # force SQLite fallback in app.py
DB_PASS: "" DB_PASS: ""
DB_NAME: "" DB_NAME: ""
run: pytest run: pytest
@@ -51,6 +51,7 @@ jobs:
- name: Build Docker image for scan - name: Build Docker image for scan
run: docker build -t demo-app:latest . run: docker build -t demo-app:latest .
# Trivy via Docker (no GitHub Action)
- name: Scan image with Trivy - name: Scan image with Trivy
run: | run: |
docker run --rm \ docker run --rm \
@@ -88,16 +89,25 @@ jobs:
- name: Deploy on server - name: Deploy on server
run: | run: |
ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} << EOF ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} << 'EOF'
cd ${{ secrets.DEPLOY_PATH }} set -e
# Create/update .env with secrets cd "${DEPLOY_PATH}"
echo "DB_USER=${{ secrets.DB_USER }}" > .env
echo "DB_PASS=${{ secrets.DB_PASS }}" >> .env # Create/update .env with DB secrets from CI
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env echo "DB_USER=${DB_USER}" > .env
# Load and deploy echo "DB_PASS=${DB_PASS}" >> .env
echo "DB_NAME=${DB_NAME}" >> .env
# Load new image and restart stack
docker load -i demo-app.tar docker load -i demo-app.tar
docker compose down docker compose down
docker compose --env-file .env up -d --remove-orphans docker compose --env-file .env up -d --remove-orphans
rm demo-app.tar rm demo-app.tar
EOF EOF
env:
DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASS: ${{ secrets.DB_PASS }}
DB_NAME: ${{ secrets.DB_NAME }}