From abcd39897884253058dd4e08a09e9f9addfdc2d2 Mon Sep 17 00:00:00 2001 From: tison Date: Sun, 24 Sep 2023 13:37:53 +0800 Subject: [PATCH 1/5] build(bindings/java): support explicit cargo build target Signed-off-by: tison --- bindings/java/pom.xml | 3 +++ bindings/java/tools/build.py | 16 ++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml index e4cbfbf05d00..921436b7996d 100644 --- a/bindings/java/pom.xml +++ b/bindings/java/pom.xml @@ -55,6 +55,7 @@ dev default + ${os.detected.classifier} @@ -177,6 +178,8 @@ ${project.basedir}/tools/build.py --classifier ${jni.classifier} + --target + ${cargo-build.target} --profile ${cargo-build.profile} --features diff --git a/bindings/java/tools/build.py b/bindings/java/tools/build.py index 2d6b3d2b0582..d99a55e68089 100755 --- a/bindings/java/tools/build.py +++ b/bindings/java/tools/build.py @@ -52,6 +52,7 @@ def get_cargo_artifact_name(classifier: str) -> str: parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument('--classifier', type=str, required=True) + parser.add_argument('--target', type=str, default='') parser.add_argument('--profile', type=str, default='dev') parser.add_argument('--features', type=str, default='default') args = parser.parse_args() @@ -61,12 +62,15 @@ def get_cargo_artifact_name(classifier: str) -> str: if args.features: cmd += ['--features', args.features] - target = classifier_to_target(args.classifier) - if target: - command = ['rustup', 'target', 'add', target] - print('$ ' + subprocess.list2cmdline(command)) - subprocess.run(command, cwd=basedir, check=True) - cmd += ['--target', target] + if args.target: + target = args.target + else: + target = classifier_to_target(args.classifier) + + command = ['rustup', 'target', 'add', target] + print('$ ' + subprocess.list2cmdline(command)) + subprocess.run(command, cwd=basedir, check=True) + cmd += ['--target', target] output = basedir / 'target' / 'bindings' Path(output).mkdir(exist_ok=True, parents=True) From bcda685dbc9210a7d785f03b6f39833976cff477 Mon Sep 17 00:00:00 2001 From: tison Date: Sun, 24 Sep 2023 13:46:47 +0800 Subject: [PATCH 2/5] fix dynamic link musl Signed-off-by: tison --- bindings/java/.cargo/config | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 bindings/java/.cargo/config diff --git a/bindings/java/.cargo/config b/bindings/java/.cargo/config new file mode 100644 index 000000000000..31430ed7b3ee --- /dev/null +++ b/bindings/java/.cargo/config @@ -0,0 +1,9 @@ +[target.x86_64-unknown-linux-musl] +rustflags = [ + "-C", "target-feature=-crt-static", +] + +[target.aarch64-unknown-linux-musl] +rustflags = [ + "-C", "target-feature=-crt-static", +] From f7767a21f6fef5f79b7c9a2cd315234a87e871ad Mon Sep 17 00:00:00 2001 From: tison Date: Sun, 24 Sep 2023 14:31:35 +0800 Subject: [PATCH 3/5] ci(bindings/java): try to add a containered test Signed-off-by: tison --- .github/workflows/bindings_java.yml | 28 ++++++++++++++++++++++------ bindings/java/tools/build.py | 2 +- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bindings_java.yml b/.github/workflows/bindings_java.yml index 343e0325e7b7..efa6177104c1 100644 --- a/.github/workflows/bindings_java.yml +++ b/.github/workflows/bindings_java.yml @@ -70,14 +70,9 @@ jobs: - name: Set up JDK 8 uses: actions/setup-java@v3 with: - distribution: 'temurin' + distribution: 'zulu' java-version: '8' cache: 'maven' - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.4" - repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build and test working-directory: bindings/java # `mvn install` and `mvn artifact:compare` are required to verify reproducible builds: @@ -86,3 +81,24 @@ jobs: run: | ./mvnw clean install -DskipTests ./mvnw verify artifact:compare + + centos-containered-test: + runs-on: ubuntu-latest + container: centos/python-38-centos7 + steps: + - uses: actions/checkout@v3 + - name: Set up rustup + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup-init.sh + sh rustup-init.sh -y --default-toolchain none + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '8' + cache: 'maven' + - name: Build and test + working-directory: bindings/java + run: | + source "$HOME/.cargo/env" + ./mvnw clean verify -Dcargo-build.target=x86_64-unknown-linux-musl diff --git a/bindings/java/tools/build.py b/bindings/java/tools/build.py index d99a55e68089..8bc5fabcbd79 100755 --- a/bindings/java/tools/build.py +++ b/bindings/java/tools/build.py @@ -17,7 +17,7 @@ # under the License. -from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser, BooleanOptionalAction +from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser from pathlib import Path import shutil import subprocess From a1e2a3b1618057b0aef02095ee9024da19c14484 Mon Sep 17 00:00:00 2001 From: tison Date: Sun, 24 Sep 2023 14:41:38 +0800 Subject: [PATCH 4/5] drop complicated containered test Signed-off-by: tison --- .github/workflows/bindings_java.yml | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/.github/workflows/bindings_java.yml b/.github/workflows/bindings_java.yml index efa6177104c1..4285cc0532c3 100644 --- a/.github/workflows/bindings_java.yml +++ b/.github/workflows/bindings_java.yml @@ -81,24 +81,3 @@ jobs: run: | ./mvnw clean install -DskipTests ./mvnw verify artifact:compare - - centos-containered-test: - runs-on: ubuntu-latest - container: centos/python-38-centos7 - steps: - - uses: actions/checkout@v3 - - name: Set up rustup - run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup-init.sh - sh rustup-init.sh -y --default-toolchain none - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: '8' - cache: 'maven' - - name: Build and test - working-directory: bindings/java - run: | - source "$HOME/.cargo/env" - ./mvnw clean verify -Dcargo-build.target=x86_64-unknown-linux-musl From f1b74ec5da0b75ec386e2c8b9f20969520a8433e Mon Sep 17 00:00:00 2001 From: tison Date: Sun, 24 Sep 2023 14:43:43 +0800 Subject: [PATCH 5/5] Update bindings/java/.cargo/config --- bindings/java/.cargo/config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bindings/java/.cargo/config b/bindings/java/.cargo/config index 31430ed7b3ee..fc0bf0e2815f 100644 --- a/bindings/java/.cargo/config +++ b/bindings/java/.cargo/config @@ -1,3 +1,5 @@ +# See also https://github.com/rust-lang/rust/issues/44991 + [target.x86_64-unknown-linux-musl] rustflags = [ "-C", "target-feature=-crt-static",