feat: add Docker deployment workflow for building and deploying the application
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 41s
Build and Push Docker Image / build (push) Has been cancelled

This commit is contained in:
Felix Schlusche
2025-10-24 16:04:42 +02:00
parent c9ff811a2a
commit ea4bda3658
2 changed files with 55 additions and 6 deletions

View File

@@ -0,0 +1,49 @@
name: Build and Deploy
on:
push:
branches:
- main
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image
run: |
docker build -t timetracker:latest .
docker tag timetracker:latest timetracker:${{ github.sha }}
- name: Save image
run: docker save timetracker:latest | gzip > timetracker.tar.gz
- name: Deploy to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_SSH_KEY }}
source: "timetracker.tar.gz,docker-compose.yml"
target: "/opt/timetracker"
- name: Load and restart containers
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_SSH_KEY }}
script: |
cd /opt/timetracker
docker load < timetracker.tar.gz
docker-compose down
docker-compose up -d
docker system prune -f
rm timetracker.tar.gz