name: Deploy Bot on NAS on: push: branches: [ main, dev ] jobs: deploy: runs-on: self-hosted steps: - name: Install dependencies run: apk add --no-cache rsync openssh-client - name: Checkout run: | git clone --depth 1 --branch ${{ github.ref_name }} \ ${{ github.server_url }}/${{ github.repository }}.git . - name: Set deployment path run: | if [ "${{ github.ref_name }}" = "main" ]; then echo "DEPLOY_PATH=/share/CACHEDEV1_DATA/discord-bot-prod" >> $GITHUB_ENV elif [ "${{ github.ref_name }}" = "dev" ]; then echo "DEPLOY_PATH=/share/CACHEDEV1_DATA/discord-bot-dev" >> $GITHUB_ENV else echo "Unsupported branch" && exit 1 fi - name: Configure SSH run: | mkdir -p ~/.ssh echo "${{ secrets.NAS_SSH_KEY }}" > ~/.ssh/id_deploy chmod 600 ~/.ssh/id_deploy - name: Sync files to NAS run: | rsync -av --delete \ -e "ssh -i ~/.ssh/id_deploy -o StrictHostKeyChecking=no" \ --exclude='.git' \ --exclude='.env' \ --exclude='data/' \ --exclude='screenshots/' \ --exclude='logs/' \ ./ Elewyn@192.168.1.208:${{ env.DEPLOY_PATH }}/ - name: Restart bot on NAS run: | ssh -i ~/.ssh/id_deploy -o StrictHostKeyChecking=no \ Elewyn@192.168.1.208 \ "cd ${{ env.DEPLOY_PATH }} && docker compose down || true && docker compose up --build -d"