name: Deploy Chatbot Backend on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4.2.2 - name: Set up JDK 25 uses: actions/setup-java@v4.7.0 with: java-version: '25' distribution: 'temurin' cache: 'maven' - name: Setup SSH uses: webfactory/ssh-agent@v0.9.1 with: ssh-private-key: ${{ secrets.VPS_SSH_KEY }} - name: Add server to known hosts run: | mkdir -p ~/.ssh ssh-keyscan -H ${{ secrets.VPS_IP }} >> ~/.ssh/known_hosts - name: Build JAR run: | chmod +x mvnw ./mvnw clean package -DskipTests - name: Deploy JAR to Server run: | JAR_NAME="chatbot-bridge-service-0.0.1-SNAPSHOT.jar" LOCAL_JAR_PATH="target/$JAR_NAME" REMOTE_SERVER="${{ secrets.VPS_USER }}@${{ secrets.VPS_IP }}" REMOTE_JAR_DIR="/home/ubuntu" # Upload jar rsync -avz -e "ssh" $LOCAL_JAR_PATH $REMOTE_SERVER:$REMOTE_JAR_DIR/$JAR_NAME # Replace and restart safely ssh $REMOTE_SERVER << EOF mv $REMOTE_JAR_DIR/$JAR_NAME $REMOTE_JAR_DIR/chatbot.jar && \ sudo systemctl restart chatbot.service EOF