From 8b8dcb7ebe95b8f82bcea5feb153b370dd9e50f6 Mon Sep 17 00:00:00 2001 From: FyloZ Date: Sun, 30 Jan 2022 17:49:22 -0500 Subject: [PATCH] Add CI/CD --- .drone.yml | 29 +++++++++++++++++++++++++++++ build.gradle.kts | 37 +++++++++++++++++++++++++++++++++++-- gradle.properties | 3 ++- 3 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..a54df32 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,29 @@ +--- +global-variables: + gradle-image: &gradle-image gradle:7.1-jdk11 + +kind: pipeline +name: default +type: docker + +steps: + - name: gradle-test + image: *gradle-image + commands: + - gradle test + when: + branch: develop + + - name: publish + image: *gradle-image + environment: + MAVEN_REPOSITORY_URL: https://archiva.fyloz.dev/repository/internal/ + MAVEN_REPOSITORY_USERNAME: + from_secret: maven_repository_username + MAVEN_REPOSITORY_PASSWORD: + from_secret: maven_repository_password + commands: + - gradle publish -Pversion=${DRONE_TAG} + when: + event: + - tag \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 691808c..4422952 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,8 @@ group = "dev.fyloz" -version = "1.0" plugins { id("org.jetbrains.kotlin.jvm") version "1.6.10" + id("maven-publish") } repositories { @@ -21,6 +21,39 @@ dependencies { testImplementation("io.mockk:mockk:1.12.2") } -tasks.withType { +publishing { + publications { + create("memory-cache") { + from(components["kotlin"]) + } + } + + repositories { + maven { + val repoUrl = System.getenv("MAVEN_REPOSITORY_URL") + val repoUsername = System.getenv("MAVEN_REPOSITORY_USERNAME") + val repoPassword = System.getenv("MAVEN_REPOSITORY_PASSWORD") + val repoName = System.getenv("MAVEN_REPOSITORY_NAME") ?: "Archiva" + + if (repoUrl != null && repoUsername != null && repoPassword != null) { + url = uri(repoUrl) + name = repoName + + credentials { + username = repoUsername + password = repoPassword + } + } else { + print("Some maven repository credentials were not configured, publishing is not configured") + } + } + } +} + +tasks.test { useJUnitPlatform() + + testLogging { + events("failed") + } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 29e08e8..89645e5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,2 @@ -kotlin.code.style=official \ No newline at end of file +kotlin.code.style=official +version=dev \ No newline at end of file