diff --git a/.github/workflows/ci-liquibase-dialect.yaml b/.github/workflows/ci-liquibase-dialect.yaml
new file mode 100644
index 0000000..2ffd600
--- /dev/null
+++ b/.github/workflows/ci-liquibase-dialect.yaml
@@ -0,0 +1,66 @@
+name: YDB Liquibase Dialect CI with Maven
+
+on:
+ push:
+ paths:
+ - 'liquibase-dialect/**'
+ branches:
+ - main
+ pull_request:
+ paths:
+ - 'liquibase-dialect/**'
+ types:
+ - opened
+ - reopened
+ - edited
+
+env:
+ MAVEN_ARGS: --batch-mode --update-snapshots -Dstyle.color=always
+
+jobs:
+ build:
+ name: YDB Liquibase Dialect
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ java: [ '8', '11', '17' ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up JDK ${{matrix.java}}
+ uses: actions/setup-java@v4
+ with:
+ java-version: ${{matrix.java}}
+ distribution: 'temurin'
+ cache: maven
+
+ - name: Extract Liquibase Dialect version
+ working-directory: ./liquibase-dialect
+ run: |
+ VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+ echo "LIQUIBASE_DIALECT_VERSION=$VERSION" >> "$GITHUB_ENV"
+
+ - name: Download Liquibase Dialect dependencies
+ working-directory: ./liquibase-dialect
+ run: mvn $MAVEN_ARGS dependency:go-offline
+
+ - name: Build Liquibase Dialect
+ working-directory: ./liquibase-dialect
+ run: mvn $MAVEN_ARGS install
+
+# TODO Run example
+# - uses: actions/checkout@v4
+# with:
+# repository: ydb-platform/ydb-java-examples
+# ref: master
+# path: examples
+#
+# - name: Download dependencies
+# working-directory: ./examples/jdbc/spring-data-jpa
+# run: mvn $MAVEN_ARGS -Dhibernate.ydb.dialect.version=$HIBERNATE_DIALECT_VERSION dependency:go-offline
+#
+# - name: Test examples with Maven
+# working-directory: ./examples/jdbc/spring-data-jpa
+# run: mvn $MAVEN_ARGS -Dhibernate.ydb.dialect.version=$HIBERNATE_DIALECT_VERSION test
diff --git a/.github/workflows/publish-liquibase-dialect.yaml b/.github/workflows/publish-liquibase-dialect.yaml
new file mode 100644
index 0000000..9b5f36b
--- /dev/null
+++ b/.github/workflows/publish-liquibase-dialect.yaml
@@ -0,0 +1,82 @@
+name: Publish YDB Liquibase Dialect
+
+on:
+ push:
+ tags:
+ - 'liquibase-ydb/v[0-9]+.[0-9]+.[0-9]+'
+
+env:
+ MAVEN_ARGS: --batch-mode --no-transfer-progress -Dstyle.color=always
+
+jobs:
+ validate:
+ name: Validate YDB Liquibase Dialect
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Extract Liquibase dialect version
+ working-directory: ./liquibase-dialect
+ run: |
+ LIQUIBASE_DIALECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+ echo "LIQUIBASE_DIALECT_VERSION=$LIQUIBASE_DIALECT_VERSION" >> "$GITHUB_ENV"
+
+ - name: Fail workflow if version is snapshot
+ if: endsWith(env.LIQUIBASE_DIALECT_VERSION, 'SNAPSHOT')
+ uses: actions/github-script@v6
+ with:
+ script: core.setFailed('SNAPSHOT version cannot be published')
+
+ - name: Fail workflow if version is not equal to tag name
+ if: format('liquibase-ydb/v{0}', env.LIQUIBASE_DIALECT_VERSION) != github.ref_name
+ uses: actions/github-script@v6
+ with:
+ script: core.setFailed('Release name must be equal to project version')
+
+ - name: Set up JDK
+ uses: actions/setup-java@v4
+ with:
+ java-version: 17
+ distribution: 'temurin'
+ cache: 'maven'
+
+ - name: Download dependencies
+ working-directory: ./liquibase-dialect
+ run: mvn $MAVEN_ARGS dependency:go-offline
+
+ - name: Build with Maven
+ working-directory: ./liquibase-dialect
+ run: mvn $MAVEN_ARGS package
+
+ publish:
+ name: Publish YDB Liquibase Dialect
+ runs-on: ubuntu-latest
+ needs: validate
+
+ steps:
+ - name: Install gpg secret key
+ run: |
+ # Install gpg secret key
+ cat <(echo -e "${{ secrets.MAVEN_OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
+ # Verify gpg secret key
+ gpg --list-secret-keys --keyid-format LONG
+
+ - uses: actions/checkout@v4
+
+ - name: Set up Maven Central Repository
+ uses: actions/setup-java@v4
+ with:
+ java-version: 17
+ distribution: 'temurin'
+ cache: 'maven'
+ server-id: ossrh-s01
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+
+ - name: Publish package
+ working-directory: ./liquibase-dialect
+ run: mvn $MAVEN_ARGS -Possrh-s01 -Dgpg.passphrase=${{ secrets.MAVEN_OSSRH_GPG_PASSWORD }} clean deploy
+ env:
+ MAVEN_USERNAME: ${{ secrets.MAVEN_OSSRH_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.MAVEN_OSSRH_TOKEN }}
diff --git a/liquibase-dialect/pom.xml b/liquibase-dialect/pom.xml
index 65d6159..2823182 100644
--- a/liquibase-dialect/pom.xml
+++ b/liquibase-dialect/pom.xml
@@ -12,7 +12,13 @@
tech.ydb.dialects
liquibase-ydb-dialect
- 0.9.0-SNAPSHOT
+ 0.9.1
+
+ Liquibase YDB Dialect
+ Support Liquibase YDB Dialect
+ https://github.com/ydb-platform/ydb-java-dialects
+
+ jar
@@ -23,6 +29,19 @@
+
+ https://github.com/ydb-platform/ydb-java-dialects
+ scm:git:https://github.com/ydb-platform/ydb-java-dialects.git
+ scm:git:https://github.com/ydb-platform/ydb-java-dialects.git
+
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
@@ -55,4 +74,103 @@
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ 1.8
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.2.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.1.0
+
+
+ true
+
+
+
+
+
+
+
+
+ jdk8-bootstrap
+
+ [9
+
+
+ 8
+
+
+
+
+ ossrh-s01
+
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 3.1.0
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ --pinentry-mode
+ loopback
+
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.13
+ true
+
+ ossrh-s01
+ https://s01.oss.sonatype.org/
+ false
+
+
+
+
+
+
\ No newline at end of file