builders/ruby/acceptance/args.bzl (36 lines of code) (raw):

"""Module for initializing arguments by Ruby version""" load(":runtime.bzl", "flex_runtimes", "gae_runtimes", "gcf_runtimes") flex_runtime_versions = {n: v for n, v in flex_runtimes.items()} gae_runtime_versions = {n: v for n, v in gae_runtimes.items()} gcf_runtime_versions = {n: v for n, v in gcf_runtimes.items()} gcp_runtime_versions = dict(dict(flex_runtime_versions, **gae_runtime_versions), **gcf_runtime_versions) ruby_gcp_runtime_versions = [key for key in gcp_runtime_versions.keys()] def rubyargs(runImageTag = "", stack = ""): """Create a new key-value map of arguments for Ruby acceptance tests Returns: A key-value map of the arguments """ args = {} for n, v in gae_runtimes.items(): args[v] = newArgs(n.replace("ruby", ""), runImageTag, stack) return args def newArgs(version, runImageTag, stack): return { "-run-image-override": runImage(version, runImageTag, stack), } # If an image tag is specified, we get the run image from the 'gae-runtimes-private' repository. # This can be used in Rapid pipelines and for local testing. # If no 'runImageTag' is provided, we get the latest runtime image being used in PROD. def runImage(version, runImageTag, stack): # TODO(b/371521232): Newer runtimes do not publish to gcr. if version == "34": return "us-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/ruby34:latest" if stack != "": if runImageTag != "": return "us-docker.pkg.dev/gae-runtimes-private/" + stack + "/runtimes/ruby" + version + ":" + runImageTag else: return "gcr.io/gae-runtimes/buildpacks/ruby" + version + "/run" if runImageTag != "": return "us-docker.pkg.dev/gae-runtimes-private/gcp/buildpacks/ruby" + version + "/run:" + runImageTag else: return "gcr.io/gae-runtimes/buildpacks/ruby" + version + "/run"