fix: adapt workflow better to local mounted volumes
Deploy On Server / Prepare Repository Remotely (push) Successful in 7s
Deploy On Server / Docker Compose Up (push) Failing after 5s
Deploy On Server / Prune Images (push) Has been skipped
Deploy On Server / Remove .env File (push) Has been skipped

This commit is contained in:
Raul Lugo
2026-08-10 18:24:26 +02:00
parent 5ca701c14f
commit 8448dc430f
+59 -17
View File
@@ -1,4 +1,4 @@
name: Build & Deployment name: Deploy On Server
on: on:
push: push:
@@ -9,8 +9,8 @@ env:
REMOTE_WORKING_DIRECTORY: compose/wedding-website REMOTE_WORKING_DIRECTORY: compose/wedding-website
jobs: jobs:
build: prepare-repository-remotely:
name: Build & Deploy name: Prepare Repository Remotely
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repository - name: Checkout Repository
@@ -18,32 +18,72 @@ jobs:
with: with:
path: repository path: repository
- name: Copy Repository over SSH - name: Prepare Remote Directory
uses: appleboy/scp-action@v0.1.7 uses: appleboy/ssh-action@v1.0.3
with: with:
host: ${{ secrets.SSH_HOST }} host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }} username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }} key: ${{ secrets.SSH_KEY }}
source: "repository" script_stop: true
script: |
mkdir -p ${{ env.REMOTE_WORKING_DIRECTORY }}
cd ${{ env.REMOTE_WORKING_DIRECTORY }}
find . -mindepth 1 -maxdepth 1 \
! -name wedding-db-data \
! -name wedding-minio-data \
-exec rm -rf {} +
- name: Copy Repository over SSH
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.SSH_HOST }}
port: 22
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
source: "repository/*"
target: ${{ env.REMOTE_WORKING_DIRECTORY }} target: ${{ env.REMOTE_WORKING_DIRECTORY }}
rm: false
strip_components: 1 strip_components: 1
rm: true
- name: Build ENV - name: Build ENV
run: | run: |
echo "${{ secrets.WEDDING_WEBSITE_ENV }}" | base64 -d > .env mkdir env
echo "${{ secrets.WEDDING_WEBSITE_ENV }}" | base64 -d > env/.env
- name: Copy ENV over SSH - name: Copy ENV over SSH
uses: appleboy/scp-action@v0.1.7 uses: appleboy/scp-action@v0.1.7
with: with:
host: ${{ secrets.SSH_HOST }} host: ${{ secrets.SSH_HOST }}
port: 22
username: ${{ secrets.SSH_USERNAME }} username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }} key: ${{ secrets.SSH_KEY }}
source: ".env" source: "env/.env"
target: ${{ env.REMOTE_WORKING_DIRECTORY }} target: ${{ env.REMOTE_WORKING_DIRECTORY }}
overwrite: true rm: false
strip_components: 1
- name: Docker Compose Commands start-services:
name: Docker Compose Up
runs-on: ubuntu-latest
needs: prepare-repository-remotely
steps:
- name: Start Services
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
script_stop: false
script: |
cd ${{ env.REMOTE_WORKING_DIRECTORY }}
docker compose up --build -d
prune-images:
name: Prune Images
runs-on: ubuntu-latest
needs: start-services
steps:
- name: Prune All Images
uses: appleboy/ssh-action@v1.0.3 uses: appleboy/ssh-action@v1.0.3
with: with:
host: ${{ secrets.SSH_HOST }} host: ${{ secrets.SSH_HOST }}
@@ -52,19 +92,21 @@ jobs:
script_stop: true script_stop: true
script: | script: |
cd ${{ env.REMOTE_WORKING_DIRECTORY }} cd ${{ env.REMOTE_WORKING_DIRECTORY }}
docker compose build
docker compose up -d wedding-db wedding-minio wedding-minio-init
docker compose up -d wedding-app
docker compose images docker compose images
docker image prune --all --force docker image prune --all --force
- name: Clean .env remove-env-file:
if: always() name: Remove .env File
needs: start-services
runs-on: ubuntu-latest
steps:
- name: Execute rm .env
uses: appleboy/ssh-action@v1.0.3 uses: appleboy/ssh-action@v1.0.3
with: with:
host: ${{ secrets.SSH_HOST }} host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }} username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }} key: ${{ secrets.SSH_KEY }}
script_stop: true
script: | script: |
cd ${{ env.REMOTE_WORKING_DIRECTORY }} cd ${{ env.REMOTE_WORKING_DIRECTORY }}
rm -f .env rm .env