feat: add Gitea workflow for deploying Kekbot to NAS via SSH
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
name: Deploy to NAS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: false
|
||||
load: true
|
||||
tags: kekbot:latest
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
- name: Save Docker image
|
||||
run: docker save kekbot:latest -o kekbot.tar
|
||||
|
||||
- name: Install SSH dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y sshpass
|
||||
|
||||
- name: Deploy to NAS
|
||||
env:
|
||||
SSH_PASSWORD: ${{ secrets.NAS_SSH_PASSWORD }}
|
||||
run: |
|
||||
# Create app directory on NAS
|
||||
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no hllywluis@luis-nas.lan "mkdir -p /mnt/kCloud/Home/hllywluis/kekbot"
|
||||
|
||||
# Copy Docker files
|
||||
sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no docker-compose.yml Dockerfile .env hllywluis@luis-nas.lan:/mnt/kCloud/Home/hllywluis/kekbot/
|
||||
sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no kekbot.tar hllywluis@luis-nas.lan:/mnt/kCloud/Home/hllywluis/kekbot/
|
||||
|
||||
# Load Docker image and deploy
|
||||
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no hllywluis@luis-nas.lan << 'EOF'
|
||||
cd /mnt/kCloud/Home/hllywluis/kekbot
|
||||
docker load -i kekbot.tar
|
||||
docker-compose down || true
|
||||
docker-compose up -d
|
||||
EOF
|
||||
Reference in New Issue
Block a user