Skip to content

Commit

Permalink
Add support for google/leveldb for all Kotlin/Native platforms.
Browse files Browse the repository at this point in the history
  • Loading branch information
lamba92 committed Dec 11, 2024
1 parent a9975d2 commit 3ecc5ac
Show file tree
Hide file tree
Showing 99 changed files with 2,112 additions and 1,518 deletions.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "daily"
40 changes: 18 additions & 22 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,27 @@
on: [ pull_request, push ]
on:
pull_request:
push:
branches:
- master

name: Test and lint

jobs:

check:
name: Test and lint (without RocksDB)
runs-on: macos-latest
strategy:
matrix:
os: [ubuntu, windows, macos]
runs-on: ${{ matrix.os }}-latest
name: "[${{ matrix.os }}] Test and lint"
steps:
- uses: actions/checkout@v2
- uses: gradle/actions/setup-gradle@v3
- uses: maxim-lobanov/setup-xcode@v1
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-java@v4
with:
xcode-version: '15.3'
distribution: corretto
java-version: 21
- run: chmod +x gradlew
- uses: gradle/actions/setup-gradle@v4
- name: Run tests
run: ./gradlew check

rocksdb-check:
name: Test and lint (with RocksDB)
runs-on: macos-latest
env:
ENABLE_ROCKSDB_NATIVE: true
steps:
- uses: actions/checkout@v2
- uses: gradle/actions/setup-gradle@v3
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.3'
- name: Run tests
run: ./gradlew check
70 changes: 70 additions & 0 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Publish release

on:
release:
types: [ published ]

jobs:
create-staging-repository:
runs-on: ubuntu-latest
name: "Create Sonatype Staging Repository"
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 21
- uses: gradle/actions/setup-gradle@v4
- run: chmod +x gradlew
- run: ./gradlew initializeSonatypeStagingRepository
env:
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_REPOSITORY_DESCRIPTION: ${{ github.event_name }}-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.ref_name }}

publish-artifacts:
needs: [ create-staging-repository ]
strategy:
matrix:
os: [ ubuntu, windows, macos ]
runs-on: ${{ matrix.os }}-latest
name: "Publish artifacts on ${{ matrix.os }}"
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 21
- uses: gradle/actions/setup-gradle@v4
- run: chmod +x gradlew
- run: ./gradlew findSonatypeStagingRepository -x initializeSonatypeStagingRepository publishToSonatype
env:
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_PRIVATE_KEY: ${{ secrets.SIGNING_PRIVATE_KEY }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_REPOSITORY_DESCRIPTION: ${{ github.event_name }}-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.ref_name }}

close-staging-repository:
needs: [ publish-artifacts ]
runs-on: ubuntu-latest
name: "Close Sonatype Staging Repository"
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 21
- uses: gradle/actions/setup-gradle@v4
- run: chmod +x gradlew
- run: ./gradlew findSonatypeStagingRepository -x initializeSonatypeStagingRepository closeAndReleaseSonatypeStagingRepository
env:
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_REPOSITORY_DESCRIPTION: ${{ github.event_name }}-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.ref_name }}
28 changes: 28 additions & 0 deletions .github/workflows/publish-snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Publish snapshot

on:
push:
branches:
- master

jobs:
publish-artifacts:
strategy:
matrix:
os: [ ubuntu, windows, macos ]
runs-on: ${{ matrix.os }}-latest
name: "Publish artifacts on ${{ matrix.os }}"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 21
- uses: gradle/actions/setup-gradle@v4
- run: chmod +x gradlew
- run: ./gradlew publishToSonatype
env:
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_PRIVATE_KEY: ${{ secrets.SIGNING_PRIVATE_KEY }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
25 changes: 0 additions & 25 deletions .github/workflows/publish.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "kotlin-leveldb"]
path = kotlin-leveldb
url = https://github.com/lamba92/kotlin-leveldb.git
22 changes: 22 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
plugins {
versions
id("io.github.gradle-nexus.publish-plugin")
}

nexusPublishing {
// repositoryDescription is used by the nexus publish plugin as identifier
// for the repository to publish to.
val repoDesc =
System.getenv("SONATYPE_REPOSITORY_DESCRIPTION")
?: project.properties["central.sonatype.repositoryDescription"] as? String
repoDesc?.let { repositoryDescription = it }

repositories {
sonatype {
username = System.getenv("SONATYPE_USERNAME")
?: project.properties["central.sonatype.username"] as? String
password = System.getenv("SONATYPE_PASSWORD")
?: project.properties["central.sonatype.password"] as? String
}
}
}
3 changes: 3 additions & 0 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
plugins {
`kotlin-dsl`
alias(libs.plugins.ktlint)
}

dependencies {
Expand All @@ -9,5 +10,7 @@ dependencies {
api(libs.kotlin.power.assert.plugin)
api(libs.ktlint.gradle)
api(libs.dokka.gradle.plugin)
api(libs.android.gradle.plugin)
api(libs.nexus.publish.plugin)
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
}
2 changes: 1 addition & 1 deletion buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@file:Suppress("UnstableApiUsage")

rootProject.name = "buildSrc"
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

dependencyResolutionManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
Expand Down
139 changes: 0 additions & 139 deletions buildSrc/src/main/kotlin/convention.gradle.kts

This file was deleted.

Loading

0 comments on commit 3ecc5ac

Please sign in to comment.