feature/pipeline: add ci/cd pipeline
Some checks failed
ci/woodpecker/push/pipeline Pipeline failed

Co-authored-by: Rodrigo Verdiani <rocverdiani@gmail.com>
Co-committed-by: Rodrigo Verdiani <rocverdiani@gmail.com>
This commit is contained in:
Rodrigo Verdiani 2025-10-28 22:01:44 -03:00 committed by rov
parent 0f448f3d6d
commit fdedf8b712
3 changed files with 71 additions and 14 deletions

View File

@ -0,0 +1,69 @@
# .pipeline.yml
# -----------------
# Build, publish, and deploy Java Spring Boot app
when:
event: [ push, pull_request ]
steps:
- name: test
image: maven:3.9.11-eclipse-temurin-25
commands:
- echo "🧪 Building and testing Spring Boot app..."
- mvn -B clean verify
when:
event: [ pull_request, push ]
branch: [ main, develop, feat/*, feature/* ]
- name: publish-image
depends_on: [ test ]
image: woodpeckerci/plugin-docker-buildx
settings:
platforms: linux/amd64
repo: git.badger-pirarucu.ts.net/mangamochi/backend
registry: git.badger-pirarucu.ts.net
dockerfile: Dockerfile
context: .
username:
from_secret: DOCKER_USER
password:
from_secret: DOCKER_PASSWORD
tags:
- latest
- ${CI_COMMIT_SHA}
when:
event: [ push ]
branch: [ main ]
- name: deploy
depends_on: [ publish-image ]
image: alpine:3.20
environment:
DEPLOY_USER: rov
DEPLOY_HOST: mangamochi.badger-pirarucu.ts.net
DEPLOY_PORT: 22
IMAGE: git.badger-pirarucu.ts.net/mangamochi/backend:${CI_COMMIT_SHA}
DEPLOY_SSH_KEY:
from_secret: DEPLOY_SSH_KEY
commands:
- echo "🚀 Deploying to $DEPLOY_HOST..."
- apk add --no-cache openssh-client docker-cli
- mkdir -p ~/.ssh
- echo "$DEPLOY_SSH_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -p $DEPLOY_PORT $DEPLOY_HOST >> ~/.ssh/known_hosts
- >
ssh -p $DEPLOY_PORT $DEPLOY_USER@$DEPLOY_HOST "
docker pull $IMAGE &&
docker stop mangamochi 2>/dev/null || true &&
docker rm mangamochi 2>/dev/null || true &&
docker run -d --name mangamochi-backend \
--restart always \
--network host \
--env-file /home/rov/mangamochi/.env \
-p 8080:8080 \
$IMAGE
"
when:
event: [ push ]
branch: [ main ]

View File

@ -13,4 +13,4 @@ WORKDIR /app
COPY --from=builder /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java, "-jar", "/app/app.jar"]
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

View File

@ -1,22 +1,10 @@
package com.magamochi.mangamochi;
import com.magamochi.mangamochi.client.JikanClient;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.openfeign.EnableFeignClients;
@Log4j2
@SpringBootTest
@RequiredArgsConstructor
@EnableFeignClients
class MangamochiApplicationTests {
private final JikanClient jikanClient;
@Test
void testJikan() {
var response = jikanClient.mangaSearch("Saint Seiya");
log.info(response.toString());
}
}
class MangamochiApplicationTests {}