Files
kekbot.js/.gitea/workflows/deploy-nas.yml
T
hllywluis 0e631bf029
Deploy to NAS / deploy (push) Has been cancelled
Add NANO_MODEL to Docker and deploy workflow
2026-03-09 12:55:52 -04:00

70 lines
2.1 KiB
YAML

name: Deploy to NAS
on:
push:
branches:
- master
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Generate package-lock.json
run: npm ci --omit=dev
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: tea.kleptonix.com
username: ${{ secrets.TEA_USERNAME }}
password: ${{ secrets.TEA_TOKEN }}
- name: Build and Push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: tea.kleptonix.com/hllywluis/kekbot.js:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Generate .env file
run: |
cat > .env << EOF
DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN }}
CLIENT_ID=${{ secrets.DISCORD_CLIENT_ID }}
NANOGPT_API_KEY=${{ secrets.NANOGPT_API_KEY }}
NANO_MODEL=${{ secrets.NANO_MODEL }}
NODE_ENV=production
EOF
- 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 (without .env, it's generated separately)
sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no docker-compose.yml .env hllywluis@luis-nas.lan:/mnt/kCloud/Home/hllywluis/kekbot/
# Pull Docker image and deploy
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no hllywluis@luis-nas.lan << 'EOF'
cd /mnt/kCloud/Home/hllywluis/kekbot
docker compose down || true
docker pull tea.kleptonix.com/hllywluis/kekbot.js:latest
docker compose up -d
EOF