我正在尝试打包一个捆绑包以上传到 Google Cloud。我有一个pkg_web
我所做的角度构建的输出,如果我传递到我正在生成的这个自定义规则中,File
它是一个作为文件目录的对象。我正在生成的自定义规则需要 app.yaml 等,以及捆绑包和上传。
但是,捆绑包变成了一个目录,我需要扩展该目录的文件以在命令的根目录中上传。
例如:
- bundle/index.html <-- bundle directory
- bundle/main.js
- app.yaml
我需要:
- index.html
- main.js
- app.yaml
我的规则:
deploy(
name = "deploy",
srcs = [":bundle"] <-- pkg_web rule,
yaml = ":app.yaml"
)
规则实现:
def _deploy_pkg(ctx):
inputs = []
inputs.append(ctx.file.yaml)
inputs.extend(ctx.files.srcs)
script_template = """
#!/bin/bash
gcloud app deploy {yaml_path}
"""
script = ctx.actions.declare_file("%s-deploy" % ctx.label.name)
ctx.actions.write(script, script_content, is_executable = True)
runfiles = ctx.runfiles(files = inputs, transitive_files = depset(ctx.files.srcs))
return [DefaultInfo(executable = script, runfiles = runfiles)]
谢谢你的想法!