Compare commits

..

3 Commits

Author SHA1 Message Date
90fcdcaa4f Update README.md 2026-04-16 16:17:12 +00:00
d26f0a1310 Upgrade dependencies 2026-02-19 14:16:50 +01:00
e3931e3e8f improve ci 2026-01-13 18:16:01 +01:00
6 changed files with 50 additions and 58 deletions

View File

@@ -1,34 +0,0 @@
on:
push:
branches:
- main
env:
INFENDRO__TOKEN: ${{ secrets.TOKEN }}
jobs:
publish:
runs-on: linux
steps:
- uses: actions/checkout@v4
- uses: actions/cache/restore@v4
with:
key: gradle
path: |
~/.gradle/caches/
~/.gradle/wrapper/
- uses: actions/setup-java@v4
with:
java-version: '24'
distribution: 'temurin'
- run: ./gradlew publish
- uses: actions/cache/save@v4
with:
key: gradle
path: |
~/.gradle/caches/
~/.gradle/wrapper/

View File

@@ -0,0 +1,30 @@
on:
push:
branches: [ main ]
jobs:
publish:
runs-on: linux
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '24'
distribution: 'temurin'
- name: Cache Gradle
uses: actions/cache@v4
with:
key: gradle-${{ hashFiles('**/libs.versions.toml') }}
restore-keys: gradle
path: |
~/.gradle/caches/
~/.gradle/wrapper/
- name: Publish
run: ./gradlew publish
env:
INFENDRO__TOKEN: ${{ secrets.TOKEN }}

View File

@@ -1,6 +1,6 @@
# migration-ktor # migration.ktor
`migration-ktor` is a Kotlin library that enables code-based migrations in Ktor. `migration.ktor` is a Kotlin library that enables code-based migrations in Ktor.
## Installation ## Installation
@@ -12,17 +12,13 @@ repositories {
} }
dependencies { dependencies {
implementation("com.infendro:ktor-migration:1.1.1") implementation("com.infendro:ktor-migration:1.2.0")
} }
``` ```
## Usage ## Usage
```kotlin ```kotlin
import com.infendro.ktor.migration.Migration
import io.ktor.server.application.*
import org.jetbrains.exposed.sql.Database
fun Application.configureDatabase() { fun Application.configureDatabase() {
// connect to a database // connect to a database
Database.connect(/* parameters */) Database.connect(/* parameters */)

View File

@@ -2,7 +2,7 @@ import com.infendro.plugin.infendro
import com.infendro.plugin.token import com.infendro.plugin.token
group = "com.infendro" group = "com.infendro"
version = "1.1.1" version = "1.2.0"
plugins { plugins {
alias(libs.plugins.infendro) alias(libs.plugins.infendro)
@@ -16,9 +16,10 @@ repositories {
} }
dependencies { dependencies {
implementation(libs.migration)
implementation(libs.ktor.server) implementation(libs.ktor.server)
implementation(libs.migration)
implementation(libs.exposed) implementation(libs.exposed)
implementation(libs.exposed.jdbc)
} }
publishing { publishing {

View File

@@ -1,15 +1,16 @@
[versions] [versions]
infendro = "1.0.0" infendro = "1.1.0"
kotlin = "2.2.21" kotlin = "2.3.0"
ktor = "3.3.3" ktor = "3.4.0"
exposed = "0.61.0" migration = "1.2.0"
migration = "1.1.1" exposed = "1.0.0"
[plugins] [plugins]
infendro = { id = "com.infendro.plugin", version.ref = "infendro" } infendro = { id = "com.infendro.plugin", version.ref = "infendro" }
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
[libraries] [libraries]
migration = { module = "com.infendro:migration", version.ref = "migration" }
ktor-server = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" } ktor-server = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
migration = { module = "com.infendro:migration", version.ref = "migration" }
exposed = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" } exposed = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }

View File

@@ -2,20 +2,18 @@ package com.infendro.ktor.migration
import com.infendro.migration.migrate import com.infendro.migration.migrate
import io.ktor.server.application.* import io.ktor.server.application.*
import org.jetbrains.exposed.sql.Transaction import org.jetbrains.exposed.v1.jdbc.JdbcTransaction
val Migration = createApplicationPlugin( val Migration = createApplicationPlugin("Migration", MigrationConfig::new) {
name = "Migration",
createConfiguration = { MigrationConfig() },
) {
migrate(pluginConfig.config) migrate(pluginConfig.config)
} }
class MigrationConfig { class MigrationConfig {
internal val config = com.infendro.migration.MigrationConfig() internal val config = com.infendro.migration.MigrationConfig()
fun migration( fun migration(name: String, migrate: JdbcTransaction.() -> Unit) = config.migration(name, migrate)
name: String,
migrate: Transaction.() -> Unit, companion object {
) = config.migration(name, migrate) fun new() = MigrationConfig()
}
} }