CI: deploy via rsync to /opt/barotrauma (no Docker)

This commit is contained in:
2026-06-09 12:22:28 +03:00
parent 9db66e427b
commit b5db2a06f3

View File

@@ -1,37 +1,36 @@
name: Build & Deploy
name: Deploy via rsync
on:
push:
branches:
- release
jobs:
build:
deploy:
runs-on: [ ubuntu-22.04 ]
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t barotrauma-server:${{ github.sha }} .
- name: Install rsync
run: sudo apt-get update -qq && sudo apt-get install -y -qq rsync
continue-on-error: true
- name: Tag and push to local registry
- name: Setup SSH
run: |
docker tag barotrauma-server:${{ github.sha }} \
${{ secrets.REGISTRY_ADDR }}/barotrauma-server:latest
docker push ${{ secrets.REGISTRY_ADDR }}/barotrauma-server:latest
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_KEY }}
script: |
docker pull ${{ secrets.REGISTRY_ADDR }}/barotrauma-server:latest
docker stop barotrauma 2>/dev/null || true
docker rm barotrauma 2>/dev/null || true
docker run -d --name barotrauma \
--restart unless-stopped \
-p 27015:27015/udp \
-p 27015:27015/tcp \
${{ secrets.REGISTRY_ADDR }}/barotrauma-server:latest
docker system prune -f
- name: Rsync to /opt/barotrauma
run: |
rsync -avz --delete \
--exclude=.git --exclude=.gitea \
-e "ssh -i ~/.ssh/deploy_key" \
./ ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:/opt/barotrauma/
- name: Restart server
run: |
ssh -i ~/.ssh/deploy_key \
${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} \
"systemctl restart barotrauma 2>/dev/null || \
(killall DedicatedServer 2>/dev/null; sleep 2; cd /opt/barotrauma && nohup ./DedicatedServer >/dev/null 2>&1 &)"