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 }} NODE_ENV=production EOF - 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