I intend to then tar up the compiled assets and have the genrule output these (rather than test.txt!)
ruby_library(
name = "assets_precompile_lib",
srcs = glob(
include = [
"app/**/*",
"config/**/*",
"lib/**/*",
"vendor/assets/**/*",
],
) + [
"Rakefile"
],
deps = [
"@bundle//:gems",
],
)
ruby_binary(
name = "assets_precompile_bin",
srcs = [":assets_precompile_lib"],
args = ["assets:precompile"],
includes = [
"src/webapp/Rakefile",
],
main = "@bundle//:bin/rake",
deps = ["@bundle//:gems"],
)
genrule(
name = "test",
srcs = ["Rakefile"],
outs = ["test.txt"],
cmd = """
$(location :assets_precompile_bin)
echo "test" > $@
""",
local = 1,
message = "test",
tools = [
":assets_precompile_bin",
],
visibility = ["//visibility:public"],
)
➜ bazel build //src/webapp:test
INFO: Analyzed target //src/webapp:test (1 packages loaded, 1740 targets configured).
INFO: Found 1 target...
ERROR: /Users/robert.gates/Repositories/cube/src/webapp/BUILD:698:8: test //src/webapp:test failed: (Exit 1): bash failed: error executing command /bin/bash -c ... (remaining 1 argument skipped)
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/private/var/tmp/_bazel_robert.gates/dc10ae55cdaa28397da3989c20f911cb/external/bundle/lib/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
(See full trace by running task with --trace)
Target //src/webapp:test failed to build
Use --verbose_failures to see the command lines of failed build steps.