46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
name: Build & Deploy
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- release
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: [ ubuntu-22.04 ]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Build Docker image
|
|
run: docker build -t barotrauma-server:${{ github.sha }} .
|
|
|
|
deploy:
|
|
if: github.ref_name == 'release'
|
|
runs-on: [ ubuntu-22.04 ]
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Tag and push to local registry
|
|
run: |
|
|
docker tag barotrauma-server:${{ github.sha }} \
|
|
${{ secrets.REGISTRY_ADDR }}/barotrauma-server:latest
|
|
docker push ${{ secrets.REGISTRY_ADDR }}/barotrauma-server:latest
|
|
|
|
- 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
|