diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index fa23a1aa4..f2fdf745d 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -16,7 +16,7 @@ jobs: env: GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} run: | - ./decrypt_secret.sh + ./tools/decrypt_secret.sh - name: Deploy env: OKTA_DUMMY_CI_PW: ${{ secrets.OKTA_DUMMY_CI_PW }} @@ -25,8 +25,12 @@ jobs: AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} run: | export GPG_TTY=$(tty) + source ./passphrase.env # load $MAVEN_GPG_PASSHRASE for maven-gpg-plugin mvn -DskipTests clean package - mvn -s settings.xml deploy + mvn -s settings.xml \ + -Dcentral-publishing.autoPublish=true \ + -Dcentral-publishing.waitUntil=published \ + deploy - name: Archive artifacts uses: actions/upload-artifact@v4 with: diff --git a/pom.xml b/pom.xml index 3be085185..8576d7044 100644 --- a/pom.xml +++ b/pom.xml @@ -7,8 +7,8 @@ jar 6.0.0-SNAPSHOT - Weaviate Java Client - A Java client for Weaviate Vector Search Engine + ${project.groupId}:${project.artifactId} + Official Java client for Weaviate Vector Search Engine https://github.com/weaviate/java-client @@ -45,17 +45,6 @@ 6.0.0-beta2 - - - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots/ - - - ossrh - https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ - - - UTF-8 UTF-8 @@ -343,7 +332,7 @@ add-test-source - process-resources + generate-test-sources add-test-source @@ -392,7 +381,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.6 + 3.2.8 sign-artifacts @@ -401,9 +390,9 @@ sign + true - ${gpg.keyname} - ${gpg.keyname} + true --batch --pinentry-mode @@ -421,6 +410,10 @@ maven-install-plugin 3.0.0-M1 + + + + maven-deploy-plugin 3.0.0-M1 @@ -428,26 +421,22 @@ true + - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.13 + org.sonatype.central + central-publishing-maven-plugin + 0.8.0 true - - - default-deploy - deploy - - deploy - - - - ossrh - https://s01.oss.sonatype.org - true + + + + + ${central-publishing.autoPublish} + ${central-publishing.waitUntil} + maven-site-plugin 3.9.1 @@ -484,8 +473,8 @@ maven-gpg-plugin - org.sonatype.plugins - nexus-staging-maven-plugin + org.sonatype.central + central-publishing-maven-plugin diff --git a/secrets.tar.gpg b/secrets.tar.gpg index 78ea9a529..26523a2f7 100644 Binary files a/secrets.tar.gpg and b/secrets.tar.gpg differ diff --git a/src/it/java/io/weaviate/containers/Container.java b/src/it/java/io/weaviate/containers/Container.java index ee8859a18..4a95b4044 100644 --- a/src/it/java/io/weaviate/containers/Container.java +++ b/src/it/java/io/weaviate/containers/Container.java @@ -11,7 +11,6 @@ import org.testcontainers.lifecycle.Startable; import io.weaviate.client6.v1.api.WeaviateClient; -import lombok.RequiredArgsConstructor; public class Container { public static final Weaviate WEAVIATE = Weaviate.createDefault(); @@ -85,10 +84,13 @@ public TestRule asTestRule() { }; } - @RequiredArgsConstructor public static class PerTestSuite implements TestRule { private final Startable container; + public PerTestSuite(Startable container) { + this.container = container; + } + @Override public Statement apply(Statement base, Description description) { return new Statement() { diff --git a/decrypt_secret.sh b/tools/decrypt_secret.sh similarity index 96% rename from decrypt_secret.sh rename to tools/decrypt_secret.sh index c43ade4b5..672b524e0 100755 --- a/decrypt_secret.sh +++ b/tools/decrypt_secret.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -euo pipefail +# Options: # --batch to prevent interactive command # --yes to assume "yes" for questions gpg --quiet --batch --yes --decrypt --passphrase="$GPG_PASSPHRASE" --output secrets.tar secrets.tar.gpg diff --git a/tools/encrypt_secret.sh b/tools/encrypt_secret.sh new file mode 100755 index 000000000..5451af882 --- /dev/null +++ b/tools/encrypt_secret.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -euo pipefail + +# This script generates a GPG-ecrypted tarball with our signing GPG key +# and Maven Central Repository credentials. +# +# Make sure that key.gpg, settings.xml, and passphrase.env exist in the current directory. +# Delete these files after the script has run. Only commit secrets.tar.gpg! + +rm -f secrets.tar && + tar --no-xattrs -czf secrets.tar key.gpg settings.xml passphrase.env + +rm -f secrets.tar.gpg && + gpg --batch --symmetric \ + --passphrase "$GPG_PASSPHRASE" \ + --output secrets.tar.gpg \ + secrets.tar + +rm -f secrets.tar + +echo "Tarball secrets.tar.gpg generated successfully." +echo "Remember to delete the plaintext files. Only commit secrets.tar.gpg to source control!" +echo +echo " \$ git add secrets.tar.gpg && git commit -m 'ci: update secrets.tar.gpg'" +echo " \$ rm key.gpg settings.xml passphrase.env" +echo +