# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see BuildbucketCfg message:
#   https://luci-config.appspot.com/schemas/projects:buildbucket.cfg

buckets {
  name: "ci"
  swarming {
    builders {
      name: "Example Builder"
      swarming_host: "chromium-swarm.appspot.com"
      exe {
        cipd_package: "golang/recipe_bundles/go.googlesource.com/build"
        cipd_version: "refs/heads/luci-config"
        cmd: "luciexe"
      }
      properties:
        '{'
        '  "recipe": "hello_world"'
        '}'
      service_account: "luci-task@golang-ci-luci.iam.gserviceaccount.com"
      experiments {
        key: "luci.recipes.use_python3"
        value: 100
      }
    }
    builders {
      name: "linux-amd64-go1.20"
      swarming_host: "chromium-swarm.appspot.com"
      dimensions: "cpu:x86-64"
      dimensions: "os:Linux"
      exe {
        cipd_package: "infra/experimental/golangbuild/${platform}"
        cipd_version: "latest"
        cmd: "golangbuild"
      }
      properties:
        '{'
        '  "project": "go"'
        '}'
      service_account: "luci-task@golang-ci-luci.iam.gserviceaccount.com"
    }
    builders {
      name: "linux-amd64-master"
      swarming_host: "chromium-swarm.appspot.com"
      dimensions: "cpu:x86-64"
      dimensions: "os:Linux"
      exe {
        cipd_package: "infra/experimental/golangbuild/${platform}"
        cipd_version: "latest"
        cmd: "golangbuild"
      }
      properties:
        '{'
        '  "project": "go"'
        '}'
      service_account: "luci-task@golang-ci-luci.iam.gserviceaccount.com"
    }
  }
}
buckets {
  name: "prod"
  swarming {
    builders {
      name: "recipe-bundler"
      swarming_host: "chromium-swarm.appspot.com"
      dimensions: "cpu:x86-64"
      dimensions: "os:Ubuntu"
      dimensions: "pool:luci.golang.prod"
      exe {
        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/infra/infra"
        cipd_version: "git_revision:acc7f2b0336dd85304eb4ac08143647f22e6812c"
        cmd: "luciexe"
      }
      properties:
        '{'
        '  "package_name_internal_prefix": "golang/recipe_bundles",'
        '  "package_name_prefix": "golang/recipe_bundles",'
        '  "recipe": "recipe_bundler",'
        '  "recipe_bundler_vers": "git_revision:e17798c24f16b783aedbf989791ea9caa741bdaf",'
        '  "repo_specs": ['
        '    "go.googlesource.com/build=FETCH_HEAD,refs/heads/luci-config"'
        '  ]'
        '}'
      priority: 20
      execution_timeout_secs: 600
      expiration_secs: 900
      service_account: "recipe-bundler@golang-ci-luci.iam.gserviceaccount.com"
      experiments {
        key: "luci.recipes.use_python3"
        value: 100
      }
      description_html: "Builder to bundle recipe changes and upload bundled recipe package to CIPD."
    }
  }
}
buckets {
  name: "try"
}
