Future startBuild()

in server/lib/services/BuildsService.dart [40:72]


  Future<cb.Operation> startBuild(String accessToken,
      projectId, substitutionsMap, templateConfigUrl, String method) async {

    Map<String, dynamic> templateJsonConfig =
    await _configService.getJson(templateConfigUrl);

    var templateBuildSteps = templateJsonConfig['create']['steps'];
    if (method == "DELETE")
       templateBuildSteps = templateJsonConfig['destroy']['steps'];

    String parent = "projects/${projectId}/locations/global";

    List<cb.BuildStep> buildSteps = [];

    for (Map<dynamic, dynamic> jsonStep in templateBuildSteps) {
      var buildStep = cb.BuildStep.fromJson(jsonStep);
      buildSteps.add(buildStep);
    }

    cb.BuildOptions buildOptions = cb.BuildOptions();
    buildOptions.substitutionOption = 'ALLOW_LOOSE';

    var buildRequest = cb.Build(
        substitutions: substitutionsMap,
        steps: buildSteps,
        options: buildOptions);

    var cloudBuildApi = cb.CloudBuildApi(getAuthenticatedClient(accessToken));
    cb.Operation buildOp = await cloudBuildApi.projects.builds
        .create(buildRequest, projectId, parent: parent);

    return buildOp;
  }