Skip to content

Commit 5bfcca1

Browse files
authored
feat: add starlark as template extension (#168)
* feat: add starlark as template extension * docs: add reference to the supported extensions
1 parent a7af80c commit 5bfcca1

File tree

4 files changed

+58
-9
lines changed

4 files changed

+58
-9
lines changed

docs/resources/template.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,25 @@ Manage a template.
1616
resource "drone_template" "my_pipeline" {
1717
namespace = "myorg"
1818
name = "pipeline1.yaml"
19-
data = "lorem: ipsum"
19+
data = file("${path.module}/templates/pipeline1.yaml")
2020
}
2121
2222
resource "drone_template" "other_pipeline" {
2323
namespace = "myorg"
24-
name = "pipeline2.jsonnet"
25-
data = file("${path.module}/templates/pipeline2.jsonnet")
24+
name = "pipeline2.json"
25+
data = file("${path.module}/templates/pipeline2.json")
26+
}
27+
28+
resource "drone_template" "other_pipeline" {
29+
namespace = "myorg"
30+
name = "pipeline3.jsonnet"
31+
data = file("${path.module}/templates/pipeline3.jsonnet")
32+
}
33+
34+
resource "drone_template" "other_pipeline" {
35+
namespace = "myorg"
36+
name = "pipeline4.starlark"
37+
data = file("${path.module}/templates/pipeline4.starlark")
2638
}
2739
```
2840

@@ -32,7 +44,7 @@ resource "drone_template" "other_pipeline" {
3244
### Required
3345

3446
- `data` (String) Template content
35-
- `name` (String) Template name
47+
- `name` (String) Template name, it should end with one of the supported extensions (`yaml`, `json`, `jsonnet` or `starlark`)
3648
- `namespace` (String) Organization name
3749

3850
### Read-Only
Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
resource "drone_template" "my_pipeline" {
22
namespace = "myorg"
33
name = "pipeline1.yaml"
4-
data = "lorem: ipsum"
4+
data = file("${path.module}/templates/pipeline1.yaml")
55
}
66

77
resource "drone_template" "other_pipeline" {
88
namespace = "myorg"
9-
name = "pipeline2.jsonnet"
10-
data = file("${path.module}/templates/pipeline2.jsonnet")
9+
name = "pipeline2.json"
10+
data = file("${path.module}/templates/pipeline2.json")
1111
}
12+
13+
resource "drone_template" "other_pipeline" {
14+
namespace = "myorg"
15+
name = "pipeline3.jsonnet"
16+
data = file("${path.module}/templates/pipeline3.jsonnet")
17+
}
18+
19+
resource "drone_template" "other_pipeline" {
20+
namespace = "myorg"
21+
name = "pipeline4.starlark"
22+
data = file("${path.module}/templates/pipeline4.starlark")
23+
}

internal/provider/resource_template.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func resourceTemplate() *schema.Resource {
2424
},
2525
"name": {
2626
Type: schema.TypeString,
27-
Description: "Template name",
27+
Description: "Template name, it should end with one of the supported extensions (`yaml`, `json`, `jsonnet` or `starlark`)",
2828
Required: true,
2929
ForceNew: true,
3030
ValidateDiagFunc: resourceTemplateNameValidation,
@@ -155,7 +155,8 @@ func resourceTemplateNameValidation(name interface{}, path cty.Path) diag.Diagno
155155
case
156156
".yaml",
157157
".jsonnet",
158-
".json":
158+
".json",
159+
".starlark":
159160
return diag.Diagnostics{}
160161
}
161162
return diag.Errorf("Template name %s do not have a valid extension", name)

internal/provider/resource_template_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,30 @@ func TestAccDroneTemplateResource(t *testing.T) {
4848
),
4949
),
5050
},
51+
{
52+
Config: testTemplateConfigBasic(
53+
"foo",
54+
"baz.starlark",
55+
"lorem: ipsum",
56+
),
57+
Check: resource.ComposeTestCheckFunc(
58+
resource.TestCheckResourceAttr(
59+
"drone_template.template",
60+
"namespace",
61+
"foo",
62+
),
63+
resource.TestCheckResourceAttr(
64+
"drone_template.template",
65+
"name",
66+
"baz.starlark",
67+
),
68+
resource.TestCheckResourceAttr(
69+
"drone_template.template",
70+
"data",
71+
"lorem: ipsum",
72+
),
73+
),
74+
},
5175
},
5276
})
5377
}

0 commit comments

Comments
 (0)