#!/usr/bin/env lucicfg

lucicfg.check_version("1.33.2", "Please update depot_tools")

lucicfg.config(
    config_dir = "generated",
    tracked_files = ["*.cfg"],
    fail_on_warnings = True,
    lint_checks = ["default", "-module-docstring"],
)

luci.project(
    name = "gerrit",

    buildbucket = "cr-buildbucket.appspot.com",
    logdog = "luci-logdog.appspot.com",
    milo = "luci-milo.appspot.com",
    notify = "luci-notify.appspot.com",
    scheduler = "luci-scheduler.appspot.com",
    swarming = "chromium-swarm.appspot.com",
    tricium = "tricium-prod.appspot.com",

    bindings = [
        # Allow owners to submit any task in any pool.
        luci.binding(
            roles = [
                "role/swarming.poolOwner",
                "role/swarming.poolUser",
                "role/swarming.taskTriggerer",
            ],
            groups = "gerritcodereview-eng",
        ),

        # Allow any googler to see all bots and tasks there.
        luci.binding(
            roles = "role/swarming.poolViewer",
            groups = "googlers",
        ),

        # Allow any googler to read/validate/reimport the project configs.
        luci.binding(
            roles = "role/configs.developer",
            groups = "googlers",
        ),

        # Allow buildbucket to read config and recipes.
        luci.binding(
            roles = "role/buildbucket.reader",
            groups = "all",
        ),

        # Allow everyone to load the config to render console and builder pages.
        # https://ci.chromium.org/p/gerrit
        # https://ci.chromium.org/ui/p/gerrit/builders
        luci.binding(
          roles = "role/configs.reader",
          groups = "all",
        )
    ],
)

# Per-service tweaks.
luci.logdog(gs_bucket = "logdog-gerrit-archive")

# Realms with ACLs for corresponding Swarming pools.
luci.realm(name = "pools/ci")
luci.realm(name = "pools/try")

# Global recipe defaults
luci.recipe.defaults.cipd_version.set("refs/heads/main")
luci.recipe.defaults.use_python3.set(True)

# The try bucket will include builders which work on pre-commit or pre-review
# code.
luci.bucket(name = "try")

# The ci bucket will include builders which work on post-commit code.
luci.bucket(name = "ci")

# The prod bucket will include builders which work on post-commit code and
# generate executable artifacts used by other users or machines.
luci.bucket(name = "prod")

# Builders

# This is the cipd package where the recipe bundler will put the built recipes.
# This line makes it the default value for all `luci.recipe` invocations in
# this configuration.
luci.recipe.defaults.cipd_package.set("infra/recipe_bundles/gerrit.googlesource.com/luci-config")

# This sets the default CIPD ref to use in builds to get the right version of
# recipes for the build.
#
# The recipe bundler sets CIPD refs equal in name to the git refs that it
# processed the recipe code from.
#
# Note: This will cause all recipe commits to automatically deploy as soon
# as the recipe bundler compiles them from your refs/heads/main branch.
cipd_version = "refs/heads/main"

luci.builder(
  name = "Example Builder",
  bucket = "ci",
  executable = luci.recipe(
    # The name of the recipe we just added.
    name = "hello_world",
  ),
  service_account = "luci-tasks@gerritcodereview-ci.iam.gserviceaccount.com",
  schedule = "with 1m interval",
)

# Defines a builder to run the "luci-test" recipe in a given bucket. This will
# be hooked up to the CQ label rather than having a set schedule.
def verify_luci_test_builder(bucket):
  luci.builder(
    name = "Verify luci-test CL",
    bucket = bucket,
    executable = luci.recipe(
      # The name of the recipe we just made.
      name = "luci-test",
    ),
    service_account = "gerrit-luci-%s-builder@gerritcodereview-ci.iam.gserviceaccount.com" % bucket,
    dimensions = {
        "os": "Ubuntu",
        "cpu": "x86-64",
        "pool": "luci.gerrit.%s" % bucket,
    },
  )

verify_luci_test_builder("try")
verify_luci_test_builder("ci")

# Create a CQ group to watch luci-test repo for changes.
luci.cq_group(
  name = "luci-test_repo",
  acls = [
      acl.entry(
          acl.CQ_DRY_RUNNER,
          groups = "all",
      ),
      acl.entry(
          acl.CQ_NEW_PATCHSET_RUN_TRIGGERER,
          groups = "all",
      ),
      acl.entry(
          acl.CQ_COMMITTER,
          groups = "project-gerrit-committers",
      ),
  ],
  watch = cq.refset(
    repo = "https://gerrit.googlesource.com/luci-test",
    refs = ["refs/heads/.+"],  # will watch all branches
  ),
)

# Attach our "Verify luci-test CL" builder to this CQ group.
luci.cq_tryjob_verifier(
  builder = "try/Verify luci-test CL",
  cq_group = "luci-test_repo",
)

# Runs luci-test tests after any merged change
luci.gitiles_poller(
    name = "luci-test main source",
    bucket = "ci",
    repo = "https://gerrit.googlesource.com/luci-test",

    # by default this will scan "refs/heads/main"; Supply the `refs` argument
    # if you want something else.

    triggers = ["ci/Verify luci-test CL"],
)

# This console view will appear on https://ci.chromium.org/p/gerrit and display
# current luci-test build status at HEAD
luci.console_view(
  name = 'luci-test CI builders',
  repo = "https://gerrit.googlesource.com/luci-test",
  entries = [
    luci.console_view_entry(builder='ci/Verify luci-test CL'),
  ],
)
