48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
name: Deploy to BeePC
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
|
chmod 600 ~/.ssh/id_rsa
|
|
ssh-keyscan -H beepc >> ~/.ssh/known_hosts 2>/dev/null || true
|
|
|
|
- name: Deploy to server
|
|
run: |
|
|
ssh spencer@beepc "mkdir -p /home/spencer/homebase"
|
|
rsync -avz --delete \
|
|
--exclude 'node_modules' \
|
|
--exclude '.git' \
|
|
--exclude '.github' \
|
|
--exclude '*.log' \
|
|
./ spencer@beepc:/home/spencer/homebase/
|
|
|
|
- name: Run Docker Compose
|
|
run: |
|
|
ssh spencer@beepc << 'ENDSSH'
|
|
cd /home/spencer/homebase
|
|
docker compose down 2>/dev/null || true
|
|
docker compose up -d --build
|
|
sleep 5
|
|
docker compose ps
|
|
docker compose logs --tail=20
|
|
ENDSSH
|
|
|
|
- name: Verify deployment
|
|
run: |
|
|
sleep 10
|
|
curl -f http://homebase.sketchferret.com/health || exit 1
|