Files
wedding-website/.github/workflows/deployment.yaml
T
Raul Lugo 8448dc430f
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
fix: adapt workflow better to local mounted volumes
2026-08-10 18:24:26 +02:00

113 lines
3.1 KiB
YAML

name: Deploy On Server
on:
push:
branches:
- "main"
env:
REMOTE_WORKING_DIRECTORY: compose/wedding-website
jobs:
prepare-repository-remotely:
name: Prepare Repository Remotely
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
path: repository
- name: Prepare Remote Directory
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
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 }}
rm: false
strip_components: 1
- name: Build ENV
run: |
mkdir env
echo "${{ secrets.WEDDING_WEBSITE_ENV }}" | base64 -d > env/.env
- name: Copy ENV 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: "env/.env"
target: ${{ env.REMOTE_WORKING_DIRECTORY }}
rm: false
strip_components: 1
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
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
script_stop: true
script: |
cd ${{ env.REMOTE_WORKING_DIRECTORY }}
docker compose images
docker image prune --all --force
remove-env-file:
name: Remove .env File
needs: start-services
runs-on: ubuntu-latest
steps:
- name: Execute rm .env
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
script_stop: true
script: |
cd ${{ env.REMOTE_WORKING_DIRECTORY }}
rm .env