diff --git a/.woodpecker/.pipeline.yaml b/.woodpecker/.pipeline.yaml new file mode 100644 index 0000000..2ca5693 --- /dev/null +++ b/.woodpecker/.pipeline.yaml @@ -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 ] diff --git a/Dockerfile b/Dockerfile index 8f8785a..9d14c30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] diff --git a/src/test/java/com/magamochi/mangamochi/MangamochiApplicationTests.java b/src/test/java/com/magamochi/mangamochi/MangamochiApplicationTests.java index 4e942f5..3846a8d 100644 --- a/src/test/java/com/magamochi/mangamochi/MangamochiApplicationTests.java +++ b/src/test/java/com/magamochi/mangamochi/MangamochiApplicationTests.java @@ -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 {}