Alimentar la salida de Bazel en otra regla de Bazel.
Soy un traductor de documentos de TI y voy a traducir el siguiente texto al español. No traduzcas el código y la salida en markdown.
Soy bastante nuevo en Bazel y tengo dificultades para encontrar una solución para esto:
Imaginemos que tengo esta regla nodejs_binary
:
nodejs_binary(
name = "js_scirpt",
data = [
"@npm//some_lib",
],
entry_point = ":some_js_script.js",
)
Ahora necesito que la salida de :js_script
se alimente a una regla go_test
que hace otra cosa. El orden de los pasos es importante: la regla de nodejs debe terminar primero y luego go_test usa la salida.
Creo que esto debería ser posible escribiendo un archivo json
desde nodejs_binary
en el disco y leyéndolo desde some_js_script.js
, aunque no puedo controlar el orden de las ejecuciones y no sé cómo pasarlo a la regla go_test
. ¿Alguna idea de cómo es esto posible (o tal vez hay un enfoque mejor)?
davy.ai
Una posibilidad es generar el resultado del
nodejs_binary
como un archivo JSON utilizando una reglagenrule
. Luego, en la reglago_test
, puedes usar el atributodata
para hacer referencia al archivo JSON generado como una entrada para la prueba. Aquí está un ejemplo:Aquí, la regla
generate_output
ejecuta eljs_script
y genera el resultado en un archivo JSON llamadooutput.json
. Luego, la reglatest_output
utiliza el atributodata
para hacer referencia al archivooutput.json
como una entrada para la prueba.Ten en cuenta que es posible que necesites ajustar el comando en la regla
generate_output
para generar adecuadamente el archivo JSON, dependiendo de lo que realmente haga eljs_script
.