Skip to content

Commit 6067369

Browse files
Terraform Team Automationsagarp337
authored andcommitted
Added - Support for Custom shapes for the build runner
1 parent e33f262 commit 6067369

13 files changed

+330
-13
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_ocid" {}
10+
11+
variable "build_pipeline_build_pipeline_parameters_items_default_value" {
12+
default = "defaultValue"
13+
}
14+
15+
variable "build_pipeline_build_pipeline_parameters_items_description" {
16+
default = "description"
17+
}
18+
19+
variable "build_pipeline_build_pipeline_parameters_items_name" {
20+
default = "name"
21+
}
22+
23+
variable "build_pipeline_defined_tags_value" {
24+
default = "value"
25+
}
26+
27+
variable "build_pipeline_description" {
28+
default = "description"
29+
}
30+
31+
variable "build_pipeline_display_name" {
32+
default = "displayName"
33+
}
34+
35+
variable "build_pipeline_freeform_tags" {
36+
default = { "bar-key" = "value" }
37+
}
38+
39+
variable "build_pipeline_id" {
40+
default = "id"
41+
}
42+
43+
variable "build_pipeline_state" {
44+
default = "ACTIVE"
45+
}
46+
47+
48+
49+
provider "oci" {
50+
# version = "4.110.0"
51+
tenancy_ocid = var.tenancy_ocid
52+
user_ocid = var.user_ocid
53+
fingerprint = var.fingerprint
54+
private_key_path = var.private_key_path
55+
region = var.region
56+
}
57+
58+
resource "random_string" "topicname" {
59+
length = 10
60+
special = false
61+
}
62+
63+
resource "random_string" "projectname" {
64+
length = 10
65+
special = false
66+
}
67+
68+
resource "oci_ons_notification_topic" "test_notification_topic" {
69+
#Required
70+
compartment_id = var.compartment_ocid
71+
name = join("", ["A", random_string.topicname.result])
72+
}
73+
74+
resource "oci_devops_project" "test_project" {
75+
#Required
76+
compartment_id = var.compartment_ocid
77+
name = join("", ["A", random_string.projectname.result])
78+
notification_config {
79+
#Required
80+
topic_id = oci_ons_notification_topic.test_notification_topic.id
81+
}
82+
}
83+
84+
resource "oci_devops_build_pipeline" "test_build_pipeline" {
85+
#Required
86+
project_id = oci_devops_project.test_project.id
87+
88+
#Optional
89+
build_pipeline_parameters {
90+
#Required
91+
items {
92+
#Required
93+
default_value = var.build_pipeline_build_pipeline_parameters_items_default_value
94+
name = var.build_pipeline_build_pipeline_parameters_items_name
95+
96+
#Optional
97+
description = var.build_pipeline_build_pipeline_parameters_items_description
98+
}
99+
}
100+
description = var.build_pipeline_description
101+
display_name = var.build_pipeline_display_name
102+
}
103+

examples/devops/build_service/build_stage/build_stage.tf

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ variable "base_url" {
4848
resource "oci_ons_notification_topic" "test_notification_topic" {
4949
#Required
5050
compartment_id = var.compartment_ocid
51-
name = random_string.topicname.result
51+
name = join("", ["A", random_string.topicname.result])
5252
}
5353

5454
resource "oci_devops_project" "test_project" {
@@ -177,6 +177,11 @@ resource "oci_devops_build_pipeline_stage" "test_build_pipeline_build_github_sta
177177
image = "OL7_X86_64_STANDARD_10"
178178
primary_build_source = "primaryBuildSource"
179179
stage_execution_timeout_in_seconds = "10"
180+
build_runner_shape_config {
181+
build_runner_type = "CUSTOM"
182+
memory_in_gbs = 4
183+
ocpus = 1
184+
}
180185
build_source_collection {
181186
items {
182187
connection_type = "GITHUB"

internal/integrationtest/devops_build_pipeline_github_build_stage_test.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ var (
4545
"build_pipeline_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_devops_build_pipeline.test_build_pipeline.id}`},
4646
"build_pipeline_stage_predecessor_collection": acctest.RepresentationGroup{RepType: acctest.Required, Group: buildPipelineBuildStageBuildPipelineStagePredecessorCollectionRepresentation},
4747
"build_pipeline_stage_type": acctest.Representation{RepType: acctest.Required, Create: `BUILD`},
48+
"build_runner_shape_config": acctest.RepresentationGroup{RepType: acctest.Optional, Group: buildPipelineStageBuildRunnerShapeConfigRepresentation},
4849
"defined_tags": acctest.Representation{RepType: acctest.Optional, Create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, Update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`},
4950
"description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`},
5051
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`, Update: `displayName2`},
@@ -60,6 +61,12 @@ var (
6061
"items": acctest.RepresentationGroup{RepType: acctest.Required, Group: buildPipelineBuildStageBuildPipelineStagePredecessorCollectionItemsRepresentation},
6162
}
6263

64+
buildPipelineStageBuildRunnerShapeConfigRepresentation = map[string]interface{}{
65+
"build_runner_type": acctest.Representation{RepType: acctest.Required, Create: `CUSTOM`, Update: `DEFAULT`},
66+
"memory_in_gbs": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `0`},
67+
"ocpus": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `0`},
68+
}
69+
6370
buildPipelineBuildStageBuildPipelineStagePredecessorCollectionItemsRepresentation = map[string]interface{}{
6471
"id": acctest.Representation{RepType: acctest.Required, Create: `${oci_devops_build_pipeline.test_build_pipeline.id}`},
6572
}
@@ -85,7 +92,6 @@ var (
8592
BuildPipelineBuildStageResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_devops_build_pipeline", "test_build_pipeline", acctest.Required, acctest.Create, DevopsBuildPipelineRepresentation) +
8693
acctest.GenerateResourceFromRepresentationMap("oci_devops_project", "test_project", acctest.Required, acctest.Create, DevopsProjectRepresentation) +
8794
DefinedTagsDependencies +
88-
acctest.GenerateResourceFromRepresentationMap("oci_ons_notification_topic", "test_notification_topic", acctest.Required, acctest.Create, OnsNotificationTopicRepresentation) +
8995
githubAccessTokenVaultIdStr +
9096
acctest.GenerateResourceFromRepresentationMap("oci_devops_connection", "test_connection", acctest.Required, acctest.Create, DevopsConnectionRepresentation)
9197
)
@@ -162,6 +168,10 @@ func TestDevopsBuildPipelineBuildStageResource_basic(t *testing.T) {
162168
resource.TestCheckResourceAttr(resourceName, "build_pipeline_stage_predecessor_collection.#", "1"),
163169
resource.TestCheckResourceAttr(resourceName, "build_pipeline_stage_predecessor_collection.0.items.#", "1"),
164170
resource.TestCheckResourceAttr(resourceName, "build_pipeline_stage_type", "BUILD"),
171+
resource.TestCheckResourceAttr(resourceName, "build_runner_shape_config.#", "1"),
172+
resource.TestCheckResourceAttr(resourceName, "build_runner_shape_config.0.build_runner_type", "CUSTOM"),
173+
resource.TestCheckResourceAttr(resourceName, "build_runner_shape_config.0.memory_in_gbs", "10"),
174+
resource.TestCheckResourceAttr(resourceName, "build_runner_shape_config.0.ocpus", "10"),
165175

166176
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
167177
resource.TestCheckResourceAttr(resourceName, "description", "description"),
@@ -202,6 +212,8 @@ func TestDevopsBuildPipelineBuildStageResource_basic(t *testing.T) {
202212
resource.TestCheckResourceAttr(resourceName, "build_pipeline_stage_predecessor_collection.#", "1"),
203213
resource.TestCheckResourceAttr(resourceName, "build_pipeline_stage_predecessor_collection.0.items.#", "1"),
204214
resource.TestCheckResourceAttr(resourceName, "build_pipeline_stage_type", "BUILD"),
215+
resource.TestCheckResourceAttr(resourceName, "build_runner_shape_config.#", "1"),
216+
resource.TestCheckResourceAttr(resourceName, "build_runner_shape_config.0.build_runner_type", "DEFAULT"),
205217

206218
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
207219
resource.TestCheckResourceAttr(resourceName, "description", "description2"),
@@ -253,6 +265,8 @@ func TestDevopsBuildPipelineBuildStageResource_basic(t *testing.T) {
253265
resource.TestCheckResourceAttr(singularDatasourceName, "build_pipeline_stage_predecessor_collection.#", "1"),
254266
resource.TestCheckResourceAttr(singularDatasourceName, "build_pipeline_stage_predecessor_collection.0.items.#", "1"),
255267
resource.TestCheckResourceAttr(singularDatasourceName, "build_pipeline_stage_type", "BUILD"),
268+
resource.TestCheckResourceAttr(singularDatasourceName, "build_runner_shape_config.#", "1"),
269+
resource.TestCheckResourceAttr(singularDatasourceName, "build_runner_shape_config.0.build_runner_type", "DEFAULT"),
256270
resource.TestCheckResourceAttr(singularDatasourceName, "build_source_collection.#", "1"),
257271
resource.TestCheckResourceAttr(singularDatasourceName, "build_source_collection.0.items.#", "1"),
258272
resource.TestCheckResourceAttr(singularDatasourceName, "build_source_collection.0.items.0.branch", "branch2"),

internal/integrationtest/devops_build_pipeline_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,12 @@ var (
6262
}
6363
DevopsBuildPipelineBuildPipelineParametersItemsRepresentation = map[string]interface{}{
6464
"name": acctest.Representation{RepType: acctest.Required, Create: `name`, Update: `name2`},
65-
"default_value": acctest.Representation{RepType: acctest.Optional, Create: `defaultValue`, Update: `defaultValue2`},
65+
"default_value": acctest.Representation{RepType: acctest.Required, Create: `defaultValue`, Update: `defaultValue2`},
6666
"description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`},
6767
}
6868

6969
DevopsBuildPipelineResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_devops_project", "test_project", acctest.Required, acctest.Create, DevopsProjectRepresentation) +
70-
DefinedTagsDependencies +
71-
acctest.GenerateResourceFromRepresentationMap("oci_ons_notification_topic", "test_notification_topic", acctest.Required, acctest.Create, OnsNotificationTopicRepresentation)
70+
DefinedTagsDependencies
7271
)
7372

7473
// issue-routing-tag: devops/default

internal/service/devops/devops_build_pipeline_resource.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,16 @@ func DevopsBuildPipelineResource() *schema.Resource {
5353
Elem: &schema.Resource{
5454
Schema: map[string]*schema.Schema{
5555
// Required
56+
"default_value": {
57+
Type: schema.TypeString,
58+
Required: true,
59+
},
5660
"name": {
5761
Type: schema.TypeString,
5862
Required: true,
5963
},
6064

6165
// Optional
62-
"default_value": {
63-
Type: schema.TypeString,
64-
Optional: true,
65-
Computed: true,
66-
},
6766
"description": {
6867
Type: schema.TypeString,
6968
Optional: true,

internal/service/devops/devops_build_pipeline_stage_data_source.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,16 @@ func (s *DevopsBuildPipelineStageDataSourceCrud) SetData() error {
151151
s.D.Set("build_spec_file", v.BuildSpecFile)
152152
}
153153

154+
if v.BuildRunnerShapeConfig != nil {
155+
buildRunnerShapeConfigArray := []interface{}{}
156+
if buildRunnerShapeConfigMap := BuildRunnerShapeConfigToMap(&v.BuildRunnerShapeConfig); buildRunnerShapeConfigMap != nil {
157+
buildRunnerShapeConfigArray = append(buildRunnerShapeConfigArray, buildRunnerShapeConfigMap)
158+
}
159+
s.D.Set("build_runner_shape_config", buildRunnerShapeConfigArray)
160+
} else {
161+
s.D.Set("build_runner_shape_config", nil)
162+
}
163+
154164
if v.PrivateAccessConfig != nil {
155165
privateAccessConfigArray := []interface{}{}
156166
if privateAccessConfigMap := NetworkChannelToMapForBuildStage(&v.PrivateAccessConfig, true); privateAccessConfigMap != nil {

0 commit comments

Comments
 (0)