/
djl-serving.rb
51 lines (45 loc) 路 1.56 KB
/
djl-serving.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class DjlServing < Formula
desc "This module contains an universal model serving implementation"
homepage "https://github.com/deepjavalibrary/djl-serving"
url "https://publish.djl.ai/djl-serving/serving-0.27.0.tar"
sha256 "04af04f673aff49a50ce808f8c62645c91f409c9f4e4ce156438a5e173de58a7"
license "Apache-2.0"
# `djl-serving` versions aren't considered released until a corresponding
# release is created in the main `deepjavalibrary/djl` repository.
livecheck do
url "https://github.com/deepjavalibrary/djl"
strategy :github_latest
end
bottle do
sha256 cellar: :any_skip_relocation, all: "5f06ceecb3070a25eff54738ede1e56a184158614f68c25dcd7a70b2dd17d6c6"
end
depends_on "openjdk"
def install
# Install files
rm_rf Dir["bin/*.bat"]
mv "bin/serving", "bin/djl-serving"
libexec.install Dir["*"]
env = { MODEL_SERVER_HOME: "${MODEL_SERVER_HOME:-#{var}}" }
env.merge!(Language::Java.overridable_java_home_env)
(bin/"djl-serving").write_env_script "#{libexec}/bin/djl-serving", env
end
service do
run [opt_bin/"djl-serving", "run"]
keep_alive true
end
test do
port = free_port
(testpath/"config.properties").write <<~EOS
inference_address=http://127.0.0.1:#{port}
management_address=http://127.0.0.1:#{port}
EOS
ENV["MODEL_SERVER_HOME"] = testpath
cp_r Dir["#{libexec}/*"], testpath
fork do
exec bin/"djl-serving -f config.properties"
end
sleep 30
cmd = "http://127.0.0.1:#{port}/ping"
assert_match "{}\n", shell_output("curl --fail #{cmd}")
end
end