mill icon indicating copy to clipboard operation
mill copied to clipboard

Proguard `rt` jar not found in CI

Open Baccata opened this issue 8 months ago • 5 comments

Unfortunately cannot provide a reproducer as this happens on CI at $work.

Here's the stack trace :

java.io.IOException: Can't read [/root/.mill/ammonite/rt-17.0.14.jar] (No such file or directory: /root/.mill/ammonite/rt-17.0.14.jar)
 	at proguard.InputReader.readInput(InputReader.java:282) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.InputReader.readInput(InputReader.java:229) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.InputReader.readInput(InputReader.java:206) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.InputReader.execute(InputReader.java:157) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.ProGuard.readInput(ProGuard.java:333) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.ProGuard.execute(ProGuard.java:124) ~[proguard-base-7.3.2.jar:7.3.2]
 	at proguard.ProGuard.main(ProGuard.java:651) ~[proguard-base-7.3.2.jar:7.3.2]
 Caused by: java.io.IOException: No such file or directory: /root/.mill/ammonite/rt-17.0.14.jar
 	at proguard.io.DirectorySource.pumpDataEntries(DirectorySource.java:51) ~[proguard-core-9.0.8.jar:7.3.2]
 	at proguard.InputReader.readInput(InputReader.java:278) ~[proguard-base-7.3.2.jar:7.3.2]
 	... 7 more

Here's a potentially related change that could explain the regression : https://github.com/com-lihaoyi/mill/pull/3713/

Baccata avatar Apr 24 '25 13:04 Baccata

@Baccata what Mill version are you on?

lihaoyi avatar May 01 '25 08:05 lihaoyi

0.12.10

Baccata avatar May 01 '25 19:05 Baccata

@Baccata do you have a longer error message? Does Mill say what task failed to produce that stack trace?

lihaoyi avatar May 01 '25 23:05 lihaoyi

Hi @lihaoyi , The failure is reported while running the proguard task on a proguard mill object e.g. mill myproguardmodule.proguard

We don't get any more stack trace than reported:

[462] ProGuard, version 7.3.2
[462] Unexpected error
[462] java.io.IOException: Can't read [/root/.mill/ammonite/rt-17.0.14.jar] (No such file or directory: /root/.mill/ammonite/rt-17.0.14.jar)
[462] 	at proguard.InputReader.readInput(InputReader.java:282) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.InputReader.readInput(InputReader.java:229) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.InputReader.readInput(InputReader.java:206) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.InputReader.execute(InputReader.java:157) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.ProGuard.readInput(ProGuard.java:333) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.ProGuard.execute(ProGuard.java:124) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	at proguard.ProGuard.main(ProGuard.java:651) ~[proguard-base-7.3.2.jar:7.3.2]
[462] Caused by: java.io.IOException: No such file or directory: /root/.mill/ammonite/rt-17.0.14.jar
[462] 	at proguard.io.DirectorySource.pumpDataEntries(DirectorySource.java:51) ~[proguard-core-9.0.8.jar:7.3.2]
[462] 	at proguard.InputReader.readInput(InputReader.java:278) ~[proguard-base-7.3.2.jar:7.3.2]
[462] 	... 7 more

We're using Mill version 0.12.10, running inside a Docker container based on amazoncorretto:17 in our CI environment. It appears that ProGuard is trying to include the Ammonite runtime JAR, but it hasn't been downloaded or initialized, causing the failure.

We already run mill __.prepareOffline during image build, which preloads dependencies but does not seem to initialize or fetch the required Ammonite runtime JAR.

Is there a recommended way to ensure this runtime JAR (.mill/ammonite/rt-17.0.14.jar) is available ahead of time in headless/CI environments? Perhaps a specific command that triggers Ammonite setup?

ali-at-github avatar May 02 '25 10:05 ali-at-github

@ali-at-github could you pass me a minimized repro? It's still not clear to me what code path is causing the problem, and I can't help much until I can figure out myself what's going on

lihaoyi avatar May 09 '25 06:05 lihaoyi