| name: Deploy Job Core 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="jobcore-0.0.1-SNAPSHOT.jar" |
| LOCAL_JAR_PATH="target/$JAR_NAME" |
| REMOTE_SERVER="${{ secrets.VPS_USER }}@${{ secrets.VPS_IP }}" |
| REMOTE_JAR_DIR="${{ secrets.REMOTE_TARGET_DIR }}" |
| |
| |
| rsync -avz -e "ssh" $LOCAL_JAR_PATH $REMOTE_SERVER:$REMOTE_JAR_DIR/$JAR_NAME |
|
|
| |
| ssh $REMOTE_SERVER << EOF |
| mv $REMOTE_JAR_DIR/$JAR_NAME $REMOTE_JAR_DIR/jobcore.jar && \ |
| sudo systemctl restart jobcore.service |
| EOF |
|
|