From e9dcca9ce42c1d4003dcb9b7ecac07afde0c7105 Mon Sep 17 00:00:00 2001 From: Nicholas Terry Date: Tue, 4 Feb 2020 13:56:31 -0700 Subject: [PATCH] feat: Added alpine linux support Set up CI with Azure Pipelines --- .gitignore | 3 + azure-pipelines.yml | 24 ++++++ linux-alpine-x86_64/pom.xml | 73 +++++++++++++++++++ .../src/main/java/org/lmdbjava/Holder.java | 9 +++ .../main/java/org/lmdbjava/package-info.java | 7 ++ pom.xml | 12 +++ 6 files changed, 128 insertions(+) create mode 100644 azure-pipelines.yml create mode 100644 linux-alpine-x86_64/pom.xml create mode 100644 linux-alpine-x86_64/src/main/java/org/lmdbjava/Holder.java create mode 100644 linux-alpine-x86_64/src/main/java/org/lmdbjava/package-info.java diff --git a/.gitignore b/.gitignore index 028bab2..c6eb867 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ target gpg-sign.json mvn-sync.json secrets.tar + +.idea/ +*.iml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..d10eb0a --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,24 @@ +trigger: + branches: + include: + - master + - refs/tags/* + +jobs: +- job: + displayName: 'Snapshot build' + condition: eq(variables['build.sourceBranch'], 'refs/heads/master') + pool: + vmImage: 'ubuntu-latest' + + container: nicholasterry/azure-pipelines-alpine:latest + + steps: + - checkout: self + submodules: true + + - script: sudo apk add build-base openjdk11 maven + displayName: 'Setup prerequisite(s)' + + - script: mvn -Drevision=$(Build.BuildNumber) clean install -P linux-alpine,!linux + displayName: 'Build artifact(s)' diff --git a/linux-alpine-x86_64/pom.xml b/linux-alpine-x86_64/pom.xml new file mode 100644 index 0000000..1d01426 --- /dev/null +++ b/linux-alpine-x86_64/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + + org.lmdbjava + lmdbjava-native-parent + 0.9.23-2-SNAPSHOT + + + + org.lmdbjava.alt + lmdbjava-native-linux-alpine-x86_64 + 0.9.23-${revision}-SNAPSHOT + jar + + LmdbJava Native Library Holder: Alpine Linux + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + + org.apache.maven.plugins + maven-jar-plugin + + + + org.codehaus.mojo + exec-maven-plugin + + + native + compile + + exec + + + ${project.basedir}/../lmdb/libraries/liblmdb + make + -e clean test + + + + + + + com.coderplus.maven.plugins + copy-rename-maven-plugin + + + copy + process-classes + + copy + + + + + ${project.basedir}/../lmdb/libraries/liblmdb/liblmdb.so + ${project.basedir}/target/native/org/lmdbjava/${project.artifactId}.so + + + + + + + + + diff --git a/linux-alpine-x86_64/src/main/java/org/lmdbjava/Holder.java b/linux-alpine-x86_64/src/main/java/org/lmdbjava/Holder.java new file mode 100644 index 0000000..ecb4cba --- /dev/null +++ b/linux-alpine-x86_64/src/main/java/org/lmdbjava/Holder.java @@ -0,0 +1,9 @@ +package org.lmdbjava; + +/** + * Lightning Memory Database (LMDB) Native Wrapper. + *

+ * This project uses a JAR solely for holding the native (C) shared LMDB library + * in a Java-accessible, Maven-mapped archive. There are no usable Java types. + */ +public class Holder {} diff --git a/linux-alpine-x86_64/src/main/java/org/lmdbjava/package-info.java b/linux-alpine-x86_64/src/main/java/org/lmdbjava/package-info.java new file mode 100644 index 0000000..9953620 --- /dev/null +++ b/linux-alpine-x86_64/src/main/java/org/lmdbjava/package-info.java @@ -0,0 +1,7 @@ +/** + * Lightning Memory Database (LMDB) Native Wrapper. + *

+ * This project uses a JAR solely for holding the native (C) shared LMDB library + * in a Java-accessible, Maven-mapped archive. There are no usable Java types. + */ +package org.lmdbjava; diff --git a/pom.xml b/pom.xml index 1b8527c..b8163de 100644 --- a/pom.xml +++ b/pom.xml @@ -157,6 +157,18 @@ windows-x86_64 + + linux-alpine + + + Linux + unix + + + + linux-alpine-x86_64 + + osx