Skip to content

Commit bff3046

Browse files
committed
java: Only verify dependencies strictly in CI+Docker
Some IDEs download additional artifacts that a plain command-line Gradle build won't use, which means Gradle won't automatically manage them in verification-metadata.xml either. Compromise by only strictly checking dependencies at certain boundaries, rather than on every build action.
1 parent a410849 commit bff3046

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

.github/workflows/build_and_test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ jobs:
276276
- name: Verify that the JNI bindings are up to date
277277
run: rust/bridge/jni/bin/gen_java_decl.py --verify
278278

279-
- run: ./gradlew build assembleAndroidTest android:lintDebug -PandroidArchs=arm,arm64 | tee ./gradle-output.txt
279+
- run: ./gradlew --dependency-verification strict build assembleAndroidTest android:lintDebug -PandroidArchs=arm,arm64 | tee ./gradle-output.txt
280280
working-directory: java
281281
shell: bash # Explicitly setting the shell turns on pipefail in GitHub Actions
282282

java/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ default: java_build
1111

1212
DOCKER_IMAGE := libsignal-builder
1313
DOCKER_TTY_FLAG := $$(test -t 0 && echo -it)
14+
GRADLE_OPTIONS ?= --dependency-verification strict
1415
CROSS_COMPILE_SERVER ?= -PcrossCompileServer
1516

1617
docker_image:
@@ -22,7 +23,7 @@ java_build: docker_image
2223
--env LIBSIGNAL_TESTING_RUN_NONHERMETIC_TESTS \
2324
--env LIBSIGNAL_TESTING_PROXY_SERVER \
2425
-v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \
25-
sh -c "cd src/java; ./gradlew build $(CROSS_COMPILE_SERVER)"
26+
sh -c "cd src/java; ./gradlew $(GRADLE_OPTIONS) build $(CROSS_COMPILE_SERVER)"
2627

2728
publish_java: DOCKER_EXTRA = $(shell [ -L build ] && P=$$(readlink build) && echo -v $$P/:$$P )
2829
publish_java: docker_image
@@ -34,7 +35,7 @@ publish_java: docker_image
3435
-e ORG_GRADLE_PROJECT_signingPassword \
3536
-e ORG_GRADLE_PROJECT_signingKey \
3637
$(DOCKER_IMAGE) \
37-
sh -c "cd src/java; ./gradlew publish closeAndReleaseStagingRepositories $(CROSS_COMPILE_SERVER)"
38+
sh -c "cd src/java; ./gradlew $(GRADLE_OPTIONS) publish closeAndReleaseStagingRepositories $(CROSS_COMPILE_SERVER)"
3839

3940
# We could run these through Docker, but they would have the same result anyway.
4041

java/gradle.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
android.enableAdditionalTestOutput=true
22
android.useAndroidX=true
3+
# Downgrade dependency verification by default (we turn it back to strict in CI and pre-commit checking).
4+
org.gradle.dependency.verification=lenient
35
# Don't rely on the HTML output; that's not useful in CI.
46
org.gradle.dependency.verification.console=verbose
5-
org.gradle.jvmargs=-Xmx4g -Xms256m -XX:MaxMetaspaceSize=1g
7+
org.gradle.jvmargs=-Xmx4g -Xms256m -XX:MaxMetaspaceSize=1g

justfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ check-pre-commit: check-format-all
5656
(cd node && npm run lint)
5757
(cd swift && ./verify_error_codes.sh)
5858
(cd swift && swiftlint lint --strict)
59+
(cd java && ./gradlew --dependency-verification strict help >/dev/null)
5960
cargo test --workspace --all-features --verbose --no-fail-fast -- --include-ignored
6061
cargo clippy --workspace --all-targets --all-features --keep-going -- -D warnings
6162
@printf "\e[32mBasic pre-commit checks passed! ✅ Hopefully good to push! 🤞\e[0m\n"

0 commit comments

Comments
 (0)