59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: default
|
|
|
|
steps:
|
|
- name: Build Backend (Spring Boot)
|
|
image: maven:3.9-eclipse-temurin-21
|
|
commands:
|
|
- cd employee-service
|
|
- mvn clean package -DskipTests
|
|
|
|
- name: Build Frontend (React)
|
|
image: node:20-alpine
|
|
commands:
|
|
- cd frontend
|
|
- npm install
|
|
- npm run build
|
|
|
|
- name: Run SonarQube Scan
|
|
image: sonarsource/sonar-scanner-cli
|
|
environment:
|
|
SONAR_HOST_URL:
|
|
from_secret: SCANNER_HOST_URL
|
|
SONAR_LOGIN:
|
|
from_secret: SCANNER_LOGIN
|
|
SONAR_TOKEN:
|
|
from_secret: SCANNER_TOKEN
|
|
commands:
|
|
- mkdir -p /tmp/.scannerwork
|
|
- chmod -R 777 /tmp/.scannerwork
|
|
- >
|
|
sonar-scanner
|
|
-Dsonar.login=$SONAR_LOGIN
|
|
-Dsonar.token=$SONAR_TOKEN
|
|
-Dsonar.host.url=$SONAR_HOST_URL
|
|
-Dsonar.projectKey=crud_app
|
|
-Dsonar.projectName=crud_app
|
|
-Dsonar.working.directory=/tmp/.scannerwork
|
|
-Dsonar.modules=frontend,employee-service
|
|
-Dfrontend.sonar.projectBaseDir=frontend
|
|
-Dfrontend.sonar.sources=src
|
|
-Dfrontend.sonar.exclusions=**/node_modules/**
|
|
-Demployee-service.sonar.projectBaseDir=employee-service
|
|
-Demployee-service.sonar.sources=src/main/java
|
|
-Demployee-service.sonar.java.binaries=employee-service/target/classes
|
|
|
|
- name: Deploy to Server
|
|
image: curlimages/curl:latest
|
|
environment:
|
|
WEBHOOK_URL:
|
|
from_secret: WEBHOOK_URL
|
|
WEBHOOK_SECRET:
|
|
from_secret: WEBHOOK_SECRET
|
|
commands:
|
|
- >
|
|
curl -X POST -H "Content-Type: application/json"
|
|
-H "Authorization: Bearer $WEBHOOK_SECRET"
|
|
-d "{\"branch\":\"master\"}" "$WEBHOOK_URL"
|