Skip to content

Update maven.yml

Update maven.yml #8

Workflow file for this run

name: Build and Deploy to Ubuntu Server
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "temurin"
- name: Prepare application.properties
run: |
mkdir config
echo "${{ secrets.NODE_APP_PROPERTIES }}" > config/application.properties
- name: Build with Maven
run: mvn clean package -DskipTests
- name: Check if jar file exists
run: |
echo "Contents of target directory:"
ls -la target
if [ ! -f target/NodeBackend-0.0.1-SNAPSHOT.jar ]; then
echo "Error: Jar file not found!!"
exit 1
fi
- name: Docker build and push
run: |
docker login -u ${{ secrets.NODE_DOCKER_REPO }} -p ${{ secrets.NODE_DOCKER_KEY }}
docker build -t ${{ secrets.NODE_DOCKER_REPO }}/node-backend:latest .
docker push ${{ secrets.NODE_DOCKER_REPO }}/node-backend
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to Ubuntu Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.NODE_HOST }}
username: ${{ secrets.NODE_USERNAME }}
key: ${{ secrets.NODE_SSH_PRIVATE_KEY }}
script: |
sudo docker network create node || true
sudo docker stop node-backend || true
sudo docker rm node-backend || true
sudo docker pull ${{ secrets.NODE_DOCKER_REPO }}/node-backend:latest
sudo docker run -d -p 8080:8080 --net node --name node-backend ${{ secrets.NODE_DOCKER_REPO }}/node-backend:latest