Skip to content

Commit d60becf

Browse files
committed
ci: ci improvements
1 parent 27a6b3c commit d60becf

File tree

6 files changed

+81
-103
lines changed

6 files changed

+81
-103
lines changed

.github/workflows/migration-tests.yml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,10 @@ env:
1111
CLOUDFLARE_ALT_ZONE_ID: ed9caae55809bfe3209699f602ce17fc
1212
CLOUDFLARE_DOMAIN: terraform.cfapi.net
1313
CLOUDFLARE_ZONE_ID: 0da42c8d2132a9ddaf714f9e7c920711
14-
CLOUDFLARE_MUTUAL_TLS_CERTIFICATE: "-----BEGIN CERTIFICATE-----\nMIIF+DCCA+CgAwIBAgIUWc0b+WiKSZob8wl2g/ujewoKCvgwDQYJKoZIhvcNAQEN\nBQAwgZMxCzAJBgNVBAYTAlVTMQwwCgYDVQQIEwNOL0ExDDAKBgNVBAcTA04vQTEl\nMCMGA1UEChMcVGVycmFmb3JtIEFjY2VwdGFuY2UgVGVzdGluZzEMMAoGA1UECxMD\nTi9BMTMwMQYDVQQDEypUZXJyYWZvcm0gQWNjZXB0YW5jZSBUZXN0aW5nIENBIDE2\nMTgyODU5MjYwHhcNMjEwNDEzMDM0ODAwWhcNMjYwNDEyMDM0ODAwWjCBkzELMAkG\nA1UEBhMCVVMxDDAKBgNVBAgTA04vQTEMMAoGA1UEBxMDTi9BMSUwIwYDVQQKExxU\nZXJyYWZvcm0gQWNjZXB0YW5jZSBUZXN0aW5nMQwwCgYDVQQLEwNOL0ExMzAxBgNV\nBAMTKlRlcnJhZm0gQWNjZXB0YW5jZSBUZXN0aW5nIENBIDE2MTgyODU5MjZDQ\nAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANBzwmNB8g3eVp8Sn30z0U21\niEh/uwa+WLPEGj/F90mWg2EnW+yFvI9O8OETJAgmAQs39Z4ivt488uwLNVplshnW\nU5J7BqNk9MlBeUZwj6omuS1CZMST/YNSzmIHV5LtyJBcFaEZ2TAi4Ql9f+M9Y5HD\ncxofze5n5tfYzgB3/1lFLk7Vr5eVsqeH5QGOdKZAlsIHfTPS6TFDXP/zTInqCUz0\njfuNkRy9Mqg55JREHVGMufHcT7oTNZiLU+4B/2EfYXJ9YD6JwntKnwB2IC+iOfW7\nGc6QtAREPIlsH3yjmO0rPORrT/oAnnWZcAkkklR5XDnY7QwK5JQ3amN1aByXaPtS\nmbIJNMDxE84AeTREAqR8PmsPK5drRHr3qpWk9nUOVGUaeXwPV+M2t3Xe1WSAQwpv\nJup6PyE8O6KZGwbOiYme5KaKhxMB/ObzhajhTH9RQX7+RMwBzlL+/XTFDnd2B3Ep\nyndNFUHN7fAAapNGjPUXzez01G52N9asE8312JRmLaOqGQ2sWMzr8UgRPw7ZYL4v\nsdlqE2fxXddijGM3TEane6CiM3UdO1VcRAjvNFQjY5WQBUdAkj5+V790cxUQZiMR\nwfmh4hePo7bqXt9RjAS7OeFGBz//H5tQf9wFj3yJTsvKS5bIwP86quR969FFU8nW\na0zNkQLwWygqlhW/VlhxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBT6PStM4ZTFmvpp6lASxuxOkNYZXzANBgkqhkiG\n9w0BAQ0FAAOCAgEACIs9YskrLq3huQXsPDQhHBu8/SLQTAtkj5vtYf1uSq6MXx1k\nj6nDzvixnLam/4HhrsJQyI3FjXnk5yNwaAVA1hQoVw0G2on4qk215fsIRJUKjlzK\npUfW49TFWZ+DPlhBJ/dmHSZsxG940p4xWmNjo2aJ2CraCgP2ns+FfPxXqtpthf1y\nVW5SxKhR9VYNLczXEz8fKvDTLictYYwQ/xFZjxPHpOdV8+DoL18brNKHN8Hs/Nk1\nkzhKrDk8fReEX+jmpG7n/q973nJ31KIBxk85owv/BFgnWpC7HPY+waIH0xNr2iZA\nOu1orlBiBYAqG8zDBq3AGVlxg8yUOc5bik9OhCIwYyT2RFmd6z4O36uIM3LEzJ64\nJj8TTjOP/ktqu+GZrUrnIjfu7mlGvc4u22P8ILJ2AZe5ITp/uhMRJbGbJGEMCCH3\nkAKIEDATrevGdmgWUpdj8RNBS7+BK98eN+vcDqtY4Sudri2TwTkMbAscraacqrSJ\n4rJfjSywVr4oWXyd2P83Hl398X3x04E0Rc15+wrGvaCSN5i1gzc30fTlz1X8dJQ3\nccaHajJlRVZfuCrFBk6m5YRL7AoG4iFfoOuDZZJpjr9nXEzEONhRR5QAG83yMedS\nd8//SuQhuJQTxJW7UzkWaao+32gW/RvuQun0XtCNoow/kMVMOeSjKL9xioM=\n-----END CERTIFICATE-----"
15-
CLOUDFLARE_LOGPUSH_OWNERSHIP_TOKEN: ${{ secrets.CLOUDFLARE_LOGPUSH_OWNERSHIP_TOKEN }}
16-
CLOUDFLARE_WORKSPACE_ONE_CLIENT_ID: d0ed71f01c884e8b94ec4e4d6639f609
17-
CLOUDFLARE_WORKSPACE_ONE_CLIENT_SECRET: ${{ secrets.CLOUDFLARE_WORKSPACE_ONE_CLIENT_SECRET }}
18-
CLOUDFLARE_WORKSPACE_ONE_API_URL: ${{ secrets.CLOUDFLARE_WORKSPACE_ONE_API_URL }}
19-
CLOUDFLARE_WORKSPACE_ONE_AUTH_URL: ${{ secrets.CLOUDFLARE_WORKSPACE_ONE_AUTH_URL }}
20-
CLOUDFLARE_PAGES_OWNER: cloudflare
21-
CLOUDFLARE_PAGES_REPO: cf-pages-terraform-acceptance-testing
22-
CLOUDFLARE_R2_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY_ID }}
23-
CLOUDFLARE_R2_ACCESS_KEY_SECRET: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY_SECRET }}
24-
CLOUDFLARE_HYPERDRIVE_DATABASE_NAME: neondb
25-
CLOUDFLARE_HYPERDRIVE_DATABASE_PORT: 5432
26-
CLOUDFLARE_HYPERDRIVE_DATABASE_USER: neondb_owner
27-
CLOUDFLARE_HYPERDRIVE_DATABASE_PASSWORD: ${{ secrets.CLOUDFLARE_HYPERDRIVE_DATABASE_PASSWORD }}
28-
CLOUDFLARE_HYPERDRIVE_DATABASE_HOSTNAME: ${{ secrets.CLOUDFLARE_HYPERDRIVE_DATABASE_HOSTNAME }}
29-
TF_ACC: 1
3014
TF_MIGRATE_BINARY_PATH: ${{ github.workspace }}/tf-migrate
3115
TF_MIG_TEST: true
32-
16+
TF_ACC: 1
17+
LAST_V4_VERSION: "4.52.5"
3318
jobs:
3419
migration-tests:
3520
name: ${{ matrix.test.display_name }} Tests

internal/services/dns_record/migration/v500/migrations_test.go

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,15 @@ import (
1818
"github.com/cloudflare/terraform-provider-cloudflare/internal/utils"
1919
)
2020

21-
const (
22-
legacyProviderVersion = internal.LastV4Version // Last v4 release
21+
var (
2322
currentProviderVersion = internal.PackageVersion // Current v5 release
2423
)
2524

2625
// Migration Test Configuration
2726
//
28-
// Version constants are defined in internal/version.go:
29-
// - legacyProviderVersion: Last stable v4 release (4.52.5)
30-
// - currentProviderVersion: Current v5 release (auto-updates with releases)
27+
// Version is read from LAST_V4_VERSION environment variable (set in .github/workflows/migration-tests.yml)
28+
// - Last stable v4 release: default 4.52.5
29+
// - Current v5 release: auto-updates with releases (internal.PackageVersion)
3130
//
3231
// Based on breaking changes analysis:
3332
// - All breaking changes happened between 4.x and 5.0.0
@@ -109,7 +108,7 @@ var v5Issue6076BasicConfig string
109108
var v5Issue6076UpdatedConfig string
110109

111110
// TestMigrateDNSRecordBasicA tests migration of a simple A record from v4 to v5
112-
// Version constant legacyProviderVersion is defined in internal/version.go
111+
// Version constant os.Getenv("LAST_V4_VERSION") is defined in internal/version.go
113112
func TestMigrateDNSRecordBasicA(t *testing.T) {
114113
testCases := []struct {
115114
name string
@@ -118,7 +117,7 @@ func TestMigrateDNSRecordBasicA(t *testing.T) {
118117
}{
119118
{
120119
name: "from_v4_latest",
121-
version: legacyProviderVersion,
120+
version: os.Getenv("LAST_V4_VERSION"),
122121
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4ARecordConfig, rnd, zoneID, name) },
123122
},
124123
{
@@ -182,7 +181,7 @@ func TestMigrateDNSRecordCAARecord(t *testing.T) {
182181
}{
183182
{
184183
name: "from_v4_latest",
185-
version: legacyProviderVersion,
184+
version: os.Getenv("LAST_V4_VERSION"),
186185
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4CAARecordConfig, rnd, zoneID, name) },
187186
},
188187
{
@@ -247,7 +246,7 @@ func TestMigrateDNSRecordMXRecord(t *testing.T) {
247246
}{
248247
{
249248
name: "from_v4_latest",
250-
version: legacyProviderVersion,
249+
version: os.Getenv("LAST_V4_VERSION"),
251250
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4MXRecordConfig, rnd, zoneID, name) },
252251
},
253252
{
@@ -305,7 +304,7 @@ func TestMigrateDNSRecordSRVRecord(t *testing.T) {
305304
}{
306305
{
307306
name: "from_v4_latest",
308-
version: legacyProviderVersion,
307+
version: os.Getenv("LAST_V4_VERSION"),
309308
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4SRVRecordConfig, rnd, zoneID, name) },
310309
},
311310
{
@@ -366,7 +365,7 @@ func TestMigrateDNSRecordTXTRecord(t *testing.T) {
366365
}{
367366
{
368367
name: "from_v4_latest",
369-
version: legacyProviderVersion,
368+
version: os.Getenv("LAST_V4_VERSION"),
370369
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4TXTRecordConfig, rnd, zoneID, name) },
371370
},
372371
{
@@ -425,7 +424,7 @@ func TestMigrateDNSRecordCNAMERecord(t *testing.T) {
425424
}{
426425
{
427426
name: "from_v4_latest",
428-
version: legacyProviderVersion,
427+
version: os.Getenv("LAST_V4_VERSION"),
429428
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4CNAMERecordConfig, rnd, zoneID, name) },
430429
},
431430
{
@@ -498,12 +497,12 @@ func TestMigrateDNSRecordWithAllowOverwrite(t *testing.T) {
498497
ExternalProviders: map[string]resource.ExternalProvider{
499498
"cloudflare": {
500499
Source: "cloudflare/cloudflare",
501-
VersionConstraint: legacyProviderVersion,
500+
VersionConstraint: os.Getenv("LAST_V4_VERSION"),
502501
},
503502
},
504503
Config: v4Config,
505504
},
506-
acctest.MigrationV2TestStep(t, v4Config, tmpDir, legacyProviderVersion, "v4", "v5", []statecheck.StateCheck{
505+
acctest.MigrationV2TestStep(t, v4Config, tmpDir, os.Getenv("LAST_V4_VERSION"), "v4", "v5", []statecheck.StateCheck{
507506
statecheck.ExpectKnownValue("cloudflare_dns_record."+rnd, tfjsonpath.New("zone_id"), knownvalue.StringExact(zoneID)),
508507
statecheck.ExpectKnownValue("cloudflare_dns_record."+rnd, tfjsonpath.New("name"), knownvalue.StringExact(fmt.Sprintf("%s.%s", name, domain))),
509508
statecheck.ExpectKnownValue("cloudflare_dns_record."+rnd, tfjsonpath.New("type"), knownvalue.StringExact("A")),
@@ -534,13 +533,13 @@ func TestMigrateDNSRecordMultipleRecords(t *testing.T) {
534533
ExternalProviders: map[string]resource.ExternalProvider{
535534
"cloudflare": {
536535
Source: "cloudflare/cloudflare",
537-
VersionConstraint: legacyProviderVersion,
536+
VersionConstraint: os.Getenv("LAST_V4_VERSION"),
538537
},
539538
},
540539
Config: v4Config,
541540
},
542541
// Step 2: Run migration and verify state for all records
543-
acctest.MigrationV2TestStep(t, v4Config, tmpDir, legacyProviderVersion, "v4", "v5", []statecheck.StateCheck{
542+
acctest.MigrationV2TestStep(t, v4Config, tmpDir, os.Getenv("LAST_V4_VERSION"), "v4", "v5", []statecheck.StateCheck{
544543
// A record checks
545544
statecheck.ExpectKnownValue("cloudflare_dns_record."+rnd+"_a", tfjsonpath.New("content"), knownvalue.StringExact("52.152.96.252")),
546545
statecheck.ExpectKnownValue("cloudflare_dns_record."+rnd+"_a", tfjsonpath.New("tags"), knownvalue.ListSizeExact(2)),
@@ -570,7 +569,7 @@ func TestMigrateDNSRecordAAAARecord(t *testing.T) {
570569
}{
571570
{
572571
name: "from_v4_latest",
573-
version: legacyProviderVersion,
572+
version: os.Getenv("LAST_V4_VERSION"),
574573
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4AAAARecordConfig, rnd, zoneID, name) },
575574
},
576575
{
@@ -627,7 +626,7 @@ func TestMigrateDNSRecordNSRecord(t *testing.T) {
627626
}{
628627
{
629628
name: "from_v4_latest",
630-
version: legacyProviderVersion,
629+
version: os.Getenv("LAST_V4_VERSION"),
631630
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4NSRecordConfig, rnd, zoneID, name) },
632631
},
633632
{
@@ -684,7 +683,7 @@ func TestMigrateDNSRecordWithTags(t *testing.T) {
684683
}{
685684
{
686685
name: "from_v4_latest",
687-
version: legacyProviderVersion,
686+
version: os.Getenv("LAST_V4_VERSION"),
688687
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4TagsConfig, rnd, zoneID, name) },
689688
},
690689
{
@@ -745,7 +744,7 @@ func TestMigrateDNSRecordPTRRecord(t *testing.T) {
745744
}{
746745
{
747746
name: "from_v4_latest",
748-
version: legacyProviderVersion,
747+
version: os.Getenv("LAST_V4_VERSION"),
749748
configFn: func(rnd, zoneID, name string) string { return fmt.Sprintf(v4PTRRecordConfig, rnd, zoneID, name) },
750749
},
751750
{

internal/services/load_balancer_pool/migration/v500/migrations_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ import (
1616
"github.com/cloudflare/terraform-provider-cloudflare/internal/utils"
1717
)
1818

19-
const (
20-
legacyProviderVersion = internal.LastV4Version // Last v4 release
19+
var (
2120
currentProviderVersion = internal.PackageVersion // Current v5 release
2221
)
2322

@@ -50,7 +49,7 @@ func TestMigrateLoadBalancerPool_V4ToV5_Basic(t *testing.T) {
5049
}{
5150
{
5251
name: "from_v4_latest", // Tests legacy v4 → current v5
53-
version: legacyProviderVersion,
52+
version: os.Getenv("LAST_V4_VERSION"),
5453
configFn: func(rnd, accountID, name string) string {
5554
return fmt.Sprintf(v4BasicConfig, rnd, accountID, name)
5655
},
@@ -139,7 +138,7 @@ func TestMigrateLoadBalancerPool_V4ToV5_FullConfig(t *testing.T) {
139138
}{
140139
{
141140
name: "from_v4_latest",
142-
version: legacyProviderVersion,
141+
version: os.Getenv("LAST_V4_VERSION"),
143142
configFn: func(rnd, accountID, name, domain string) string {
144143
return fmt.Sprintf(v4FullConfig, rnd, accountID, name, domain, domain)
145144
},
@@ -278,7 +277,7 @@ func TestMigrateLoadBalancerPool_V4ToV5_CheckRegions(t *testing.T) {
278277
}{
279278
{
280279
name: "from_v4_latest",
281-
version: legacyProviderVersion,
280+
version: os.Getenv("LAST_V4_VERSION"),
282281
configFn: func(rnd, accountID, name string) string {
283282
return fmt.Sprintf(v4CheckRegionsConfig, rnd, accountID, name)
284283
},

internal/services/page_rule/migration/v500/migrations_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import (
1515
"github.com/hashicorp/terraform-plugin-testing/tfjsonpath"
1616
)
1717

18-
const (
19-
legacyProviderVersion = internal.LastV4Version // Last v4 release
18+
var (
2019
currentProviderVersion = internal.PackageVersion // Current v5 release
2120
)
2221

@@ -46,7 +45,7 @@ func TestMigratePageRule_V4ToV5_Basic(t *testing.T) {
4645
}{
4746
{
4847
name: "from_v4_latest", // Tests legacy v4 → current v5
49-
version: legacyProviderVersion,
48+
version: os.Getenv("LAST_V4_VERSION"),
5049
configFn: func(rnd, zoneID, target string) string {
5150
return fmt.Sprintf(v4BasicConfig, rnd, zoneID, target)
5251
},
@@ -131,7 +130,7 @@ func TestMigratePageRule_V4ToV5_CacheKeyFields(t *testing.T) {
131130
}{
132131
{
133132
name: "from_v4_latest",
134-
version: legacyProviderVersion,
133+
version: os.Getenv("LAST_V4_VERSION"),
135134
configFn: func(rnd, zoneID, target string) string {
136135
return fmt.Sprintf(v4CacheKeyFieldsConfig, rnd, zoneID, target)
137136
},

internal/version.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,3 @@
33
package internal
44

55
const PackageVersion = "5.16.0" // x-release-please-version
6-
7-
// LastV4Version is the last stable v4 release before v5 breaking changes.
8-
// This is used in migration tests across all resources to validate the v4 → v5 upgrade path.
9-
const LastV4Version = "4.52.5"

0 commit comments

Comments
 (0)