From 8f9f0d8c5dfd5bebfcb3c4845d7a9e5c8505b338 Mon Sep 17 00:00:00 2001 From: Araozu Date: Mon, 6 May 2024 13:44:21 -0500 Subject: [PATCH] Add jenkinsfile & dockerfile --- Dockerfile | 7 +++++++ Jenkinsfile | 20 ++++++++++++++++++++ build.gradle | 12 +++++++++++- docker-compose.yml | 6 ++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- resources/META-INF/MANIFEST.MF | 3 +++ 6 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 Dockerfile create mode 100644 Jenkinsfile create mode 100644 docker-compose.yml create mode 100644 resources/META-INF/MANIFEST.MF diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dad09ec --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM eclipse-temurin:11 +EXPOSE 8080:8080 + +# When this is run, Jenkins has already built the FAT JAR +RUN mkdir /app +COPY ./build/libs/rimajon-0.0.1-all.jar /app/backend.jar +ENTRYPOINT ["java","-jar","/app/backend.jar"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..0781f8d --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,20 @@ +pipeline { + agent { + docker { + image "gradle:7.6.4-jdk11" + } + } + + stages { + stage('Build FAT JAR') { + steps { + sh 'gradle shadowJar' + } + } + stage("Deploy jar") { + steps { + sh "echo ':D (need to spin up container)'" + } + } + } +} diff --git a/build.gradle b/build.gradle index ba36a9b..4da695e 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,10 @@ buildscript { } } +plugins { + id 'com.github.johnrengelman.shadow' version '7.0.0' +} + apply plugin: 'kotlin' apply plugin: 'application' @@ -28,6 +32,12 @@ repositories { maven { url 'https://kotlin.bintray.com/ktor' } } +shadowJar { + manifest { + attributes 'Main-Class': 'com.example.ApplicationKt' + } +} + dependencies { compile("org.jetbrains.exposed:exposed-core:0.24.1") compile("org.jetbrains.exposed:exposed-dao:0.24.1") @@ -40,5 +50,5 @@ dependencies { implementation "io.ktor:ktor-gson:$ktor_version" implementation 'com.google.code.gson:gson:2.8.5' testImplementation "io.ktor:ktor-server-tests:$ktor_version" - testImplementation 'io.kotest:kotest-runner-junit5:$version' + // testImplementation 'io.kotest:kotest-runner-junit5:$version' } diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..aa353f3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,6 @@ +services: + web: + build: . + ports: + - "9124:8080" + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 7c4388a..3994438 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/resources/META-INF/MANIFEST.MF b/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000..bc580d7 --- /dev/null +++ b/resources/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: dev.araozu.ApplicationKt +