Files
timetracker/.gitea/workflows/deploy.yml
Felix Schlusche ea4bda3658
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 41s
Build and Push Docker Image / build (push) Has been cancelled
feat: add Docker deployment workflow for building and deploying the application
2025-10-24 16:04:42 +02:00

50 lines
1.3 KiB
YAML

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