diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml new file mode 100644 index 00000000..e65f4e48 --- /dev/null +++ b/.github/workflows/maven.yaml @@ -0,0 +1,27 @@ +name: Publish Maven artifacts + +on: + push: + branches: + - 'main' + +jobs: + publish-api-artifact: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: 'gradle' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Publish package + working-directory: ./api + run: ./gradlew publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/api/build.gradle b/api/build.gradle index ae13ef53..32341afe 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'maven-publish' } sourceCompatibility = JavaVersion.VERSION_11 @@ -7,6 +8,7 @@ targetCompatibility = JavaVersion.VERSION_11 group 'by.borge.jarl' version '0.1.0-SNAPSHOT' +description 'Jarl JVM API' repositories { mavenCentral() @@ -31,3 +33,29 @@ task lein(type: Exec) { outputs.files "../core/target/jarl-${version}-standalone.jar" } tasks.compileJava.dependsOn lein + +jar { + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } +} +tasks.jar.dependsOn compileJava +tasks.publish.dependsOn jar + +publishing { + publications { + jarlApi(MavenPublication) { + from components.java + } + } + repositories { + maven { + name = "GitHubPackages" + url = "https://maven.pkg.github.com/borgeby/jarl" + credentials { + username = '_' + password = System.getenv("GITHUB_TOKEN") + } + } + } +} diff --git a/core/pom.xml b/core/pom.xml index 30b9da93..cecb0540 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -129,6 +129,12 @@ org.bitbucket.b_c jose4j 0.9.2 + + + slf4j-api + org.sjf4j + + org.apache.commons diff --git a/core/project.clj b/core/project.clj index 27c847bc..055270ca 100644 --- a/core/project.clj +++ b/core/project.clj @@ -60,4 +60,5 @@ ; more recent version provided by shadow-cljs :exclusions [com.google.javascript/closure-compiler-unshaded]] [thheller/shadow-cljs "2.20.14"]] - :source-paths ["src/main/cljs" "src/main/cljc" "src/test/cljs" "src/test/cljc"]}}) + :source-paths ["src/main/cljs" "src/main/cljc" "src/test/cljs" "src/test/cljc"]} + :uberjar {:uberjar-exclusions [#"org/slf4j"]}})