diff --git a/.github/workflows/acceptance-tests.yaml b/.github/workflows/acceptance-tests.yaml index 2cc6ec24d9..6f1ca9b13b 100644 --- a/.github/workflows/acceptance-tests.yaml +++ b/.github/workflows/acceptance-tests.yaml @@ -52,7 +52,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Run Acceptance Tests run: go test -v ./internal/services/${{ matrix.products }} -timeout=2h env: @@ -76,7 +76,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Install Terraform uses: hashicorp/setup-terraform@v3 - name: Run scwconfig tests diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 0e3254ced5..a4ff830eb9 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -12,7 +12,7 @@ on: - docs/** env: - GO_VERSION: "1.23.5" + GO_VERSION: "1.24.0" GO111MODULE: on jobs: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f80974a704..7326371ab2 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -53,7 +53,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Run Acceptance Tests run: go test -v ./internal/services/${{ matrix.products }} -timeout=4h env: @@ -105,7 +105,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Install Terraform uses: hashicorp/setup-terraform@v3 - name: Run sweepers diff --git a/.github/workflows/purge.yml b/.github/workflows/purge.yml new file mode 100644 index 0000000000..035d0319a1 --- /dev/null +++ b/.github/workflows/purge.yml @@ -0,0 +1,25 @@ +name: Manual Purge +on: + workflow_dispatch: + +jobs: + sweeper: + runs-on: ubuntu-latest + steps: + # Checkout should always be before setup-go to ensure caching is working + - name: Checkout + uses: actions/checkout@v4 + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: 1.24.0 + - name: Install Terraform + uses: hashicorp/setup-terraform@v3 + - name: Run sweepers + run: make sweep + env: + TF_TEST_DOMAIN: scaleway-terraform.com + SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} + SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} + SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_DEFAULT_ORGANIZATION_ID }} + SCW_DEFAULT_PROJECT_ID: ${{ secrets.SCW_DEFAULT_PROJECT_ID }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 56def9095b..40b51f4104 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Import GPG key id: import_gpg diff --git a/.github/workflows/tfproviderlint.yml b/.github/workflows/tfproviderlint.yml index e6ebdc35d9..1550fdc5d5 100644 --- a/.github/workflows/tfproviderlint.yml +++ b/.github/workflows/tfproviderlint.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Install tfproviderlint run: go install github.com/bflad/tfproviderlint/cmd/tfproviderlint - name: Run tfproviderlint @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - uses: hashicorp/setup-terraform@v3 - run: go install github.com/bflad/tfproviderdocs@latest - run: make tfproviderdocs diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 454d865fee..26f2564065 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -16,7 +16,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.23.5 + go-version: 1.24.0 - name: Install Terraform uses: hashicorp/setup-terraform@v3 - name: Build binaries diff --git a/go.mod b/go.mod index 7318ba705a..e56225d814 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/scaleway/terraform-provider-scaleway/v2 -go 1.23.5 +go 1.24.0 require ( github.com/aws/aws-sdk-go-v2 v1.36.0 diff --git a/internal/acctest/acctest.go b/internal/acctest/acctest.go index 92b316a3ce..d7a051dacc 100644 --- a/internal/acctest/acctest.go +++ b/internal/acctest/acctest.go @@ -1,7 +1,6 @@ package acctest import ( - "context" "os" "strconv" "strings" @@ -27,7 +26,7 @@ type TestTools struct { func NewTestTools(t *testing.T) *TestTools { t.Helper() - ctx := context.Background() + ctx := t.Context() folder, err := os.Getwd() if err != nil { diff --git a/internal/provider/provider_test.go b/internal/provider/provider_test.go index 29f93e37a6..17b1ebe94b 100644 --- a/internal/provider/provider_test.go +++ b/internal/provider/provider_test.go @@ -1,7 +1,6 @@ package provider_test import ( - "context" "fmt" "testing" @@ -20,7 +19,7 @@ func TestAccProvider_InstanceIPZones(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, @@ -78,7 +77,7 @@ func TestAccProvider_SSHKeys(t *testing.T) { SSHKeyName := "TestAccScalewayProvider_SSHKeys" SSHKey := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEEYrzDOZmhItdKaDAEqJQ4ORS2GyBMtBozYsK5kiXXX opensource@scaleway.com" - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, diff --git a/internal/services/cockpit/plan_data_source.go b/internal/services/cockpit/plan_data_source.go index ff85c54ae2..a96a721206 100644 --- a/internal/services/cockpit/plan_data_source.go +++ b/internal/services/cockpit/plan_data_source.go @@ -31,7 +31,7 @@ func DataSourceCockpitPlanRead(ctx context.Context, d *schema.ResourceData, m in name := d.Get("name").(string) - res, err := api.ListPlans(&cockpit.GlobalAPIListPlansRequest{}, scw.WithContext(ctx), scw.WithAllPages()) //nolint:staticcheck + res, err := api.ListPlans(&cockpit.GlobalAPIListPlansRequest{}, scw.WithContext(ctx), scw.WithAllPages()) if err != nil { return diag.FromErr(err) } diff --git a/internal/services/container/container.go b/internal/services/container/container.go index f8014b0f62..822e1ae649 100644 --- a/internal/services/container/container.go +++ b/internal/services/container/container.go @@ -422,7 +422,7 @@ func ResourceContainerUpdate(ctx context.Context, d *schema.ResourceData, m inte } if d.HasChanges("max_concurrency") { - req.MaxConcurrency = scw.Uint32Ptr(uint32(d.Get("max_concurrency").(int))) //nolint:staticcheck + req.MaxConcurrency = scw.Uint32Ptr(uint32(d.Get("max_concurrency").(int))) } if d.HasChanges("protocol") { diff --git a/internal/services/container/helpers_container.go b/internal/services/container/helpers_container.go index d56dab179f..bfafd8c854 100644 --- a/internal/services/container/helpers_container.go +++ b/internal/services/container/helpers_container.go @@ -110,7 +110,7 @@ func setCreateContainerRequest(d *schema.ResourceData, region scw.Region) (*cont } if maxConcurrency, ok := d.GetOk("max_concurrency"); ok { - req.MaxConcurrency = scw.Uint32Ptr(uint32(maxConcurrency.(int))) //nolint:staticcheck + req.MaxConcurrency = scw.Uint32Ptr(uint32(maxConcurrency.(int))) } if sandbox, ok := d.GetOk("sandbox"); ok { diff --git a/internal/services/iam/policy_test.go b/internal/services/iam/policy_test.go index d4366eedaf..2cf8c63bfa 100644 --- a/internal/services/iam/policy_test.go +++ b/internal/services/iam/policy_test.go @@ -1,7 +1,6 @@ package iam_test import ( - "context" "fmt" "testing" @@ -18,7 +17,7 @@ func TestAccPolicy_Basic(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) @@ -92,7 +91,7 @@ func TestAccPolicy_NoUpdate(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) @@ -155,7 +154,7 @@ func TestAccPolicy_ChangeLinkedEntity(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) @@ -261,7 +260,7 @@ func TestAccPolicy_ChangePermissions(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) @@ -352,7 +351,7 @@ func TestAccPolicy_ProjectID(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) @@ -418,7 +417,7 @@ func TestAccPolicy_Condition(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) @@ -513,7 +512,7 @@ func TestAccPolicy_ChangeRulePrincipal(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err) diff --git a/internal/services/instance/servers_data_source.go b/internal/services/instance/servers_data_source.go index 444b3148b4..4e874c9f62 100644 --- a/internal/services/instance/servers_data_source.go +++ b/internal/services/instance/servers_data_source.go @@ -218,11 +218,11 @@ func DataSourceInstanceServersRead(ctx context.Context, d *schema.ResourceData, rawServer["placement_group_policy_respected"] = server.PlacementGroup.PolicyRespected } - if server.IPv6 != nil { //nolint:staticcheck - rawServer["ipv6_address"] = server.IPv6.Address.String() //nolint:staticcheck - rawServer["ipv6_gateway"] = server.IPv6.Gateway.String() //nolint:staticcheck + if server.IPv6 != nil { + rawServer["ipv6_address"] = server.IPv6.Address.String() + rawServer["ipv6_gateway"] = server.IPv6.Gateway.String() - prefixLength, err := strconv.Atoi(server.IPv6.Netmask) //nolint:staticcheck + prefixLength, err := strconv.Atoi(server.IPv6.Netmask) if err != nil { diags = append(diags, diag.FromErr(fmt.Errorf("failed to read ipv6 netmask: %w", err))...) diff --git a/internal/services/instance/types.go b/internal/services/instance/types.go index b4e8d1d554..e5af2dbca9 100644 --- a/internal/services/instance/types.go +++ b/internal/services/instance/types.go @@ -70,7 +70,7 @@ func flattenImageExtraVolumes(volumes map[string]*instance.Volume, zone scw.Zone volumeFlat := map[string]interface{}{ "id": zonal.NewIDString(zone, volume.ID), "name": volume.Name, - "export_uri": volume.ExportURI, //nolint:staticcheck + "export_uri": volume.ExportURI, "size": volume.Size, "volume_type": volume.VolumeType, "creation_date": volume.CreationDate, diff --git a/internal/services/lb/lb_test.go b/internal/services/lb/lb_test.go index d69609a68f..b29f4ea3c4 100644 --- a/internal/services/lb/lb_test.go +++ b/internal/services/lb/lb_test.go @@ -1,7 +1,6 @@ package lb_test import ( - "context" "errors" "fmt" "reflect" @@ -692,7 +691,7 @@ func TestLbUpgradeV1SchemaUpgradeFunc(t *testing.T) { "id": "fr-par-1/22c61530-834c-4ab4-aa71-aaaa2ac9d45a", } - actual, err := lb.UpgradeStateV1Func(context.Background(), v0Schema, nil) + actual, err := lb.UpgradeStateV1Func(t.Context(), v0Schema, nil) if err != nil { t.Fatalf("error migrating state: %s", err) } diff --git a/internal/services/mnq/sns_topic_subscription_test.go b/internal/services/mnq/sns_topic_subscription_test.go index ecdb9fd7b8..9ce6e3f75a 100644 --- a/internal/services/mnq/sns_topic_subscription_test.go +++ b/internal/services/mnq/sns_topic_subscription_test.go @@ -19,7 +19,7 @@ func TestAccSNSTopicSubscription_Basic(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, ProviderFactories: tt.ProviderFactories, diff --git a/internal/services/mnq/sns_topic_test.go b/internal/services/mnq/sns_topic_test.go index b1f8790cd7..537c7e4389 100644 --- a/internal/services/mnq/sns_topic_test.go +++ b/internal/services/mnq/sns_topic_test.go @@ -20,7 +20,7 @@ func TestAccSNSTopic_Basic(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, diff --git a/internal/services/mnq/sqs_queue_test.go b/internal/services/mnq/sqs_queue_test.go index 3b7af85803..f276785318 100644 --- a/internal/services/mnq/sqs_queue_test.go +++ b/internal/services/mnq/sqs_queue_test.go @@ -25,7 +25,7 @@ func TestAccSQSQueue_Basic(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, @@ -104,7 +104,7 @@ func TestAccSQSQueue_DefaultProject(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() accountAPI := accountSDK.NewProjectAPI(tt.Meta.ScwClient()) projectID := "" diff --git a/internal/services/object/bucket_test.go b/internal/services/object/bucket_test.go index 9b7a56f6f7..f524e0ed52 100644 --- a/internal/services/object/bucket_test.go +++ b/internal/services/object/bucket_test.go @@ -578,7 +578,7 @@ func TestAccObjectBucket_Cors_Delete(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resourceName := "scaleway_object_bucket.bucket" bucketName := sdkacctest.RandomWithPrefix("tf-tests-scaleway-object-bucket-cors-delete") @@ -714,7 +714,7 @@ func TestAccObjectBucket_DestroyForce(t *testing.T) { addObjectToBucket := func(tt *acctest.TestTools, n string) resource.TestCheckFunc { return func(s *terraform.State) error { - ctx := context.Background() + ctx := t.Context() rs, ok := s.RootModule().Resources[n] if !ok { diff --git a/internal/services/object/data_source_object_bucket_test.go b/internal/services/object/data_source_object_bucket_test.go index 53a5952220..ce1710c812 100644 --- a/internal/services/object/data_source_object_bucket_test.go +++ b/internal/services/object/data_source_object_bucket_test.go @@ -1,7 +1,6 @@ package object_test import ( - "context" "fmt" "regexp" "testing" @@ -97,7 +96,7 @@ func TestAccDataSourceObjectBucket_ProjectIDAllowed(t *testing.T) { project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeSideProject(tt) require.NoError(t, err) - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, @@ -147,7 +146,7 @@ func TestAccDataSourceObjectBucket_ProjectIDForbidden(t *testing.T) { project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeSideProject(tt) require.NoError(t, err) - ctx := context.Background() + ctx := t.Context() resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, diff --git a/internal/services/rdb/helpers_test.go b/internal/services/rdb/helpers_test.go index c0fc040a3e..25ac72e062 100644 --- a/internal/services/rdb/helpers_test.go +++ b/internal/services/rdb/helpers_test.go @@ -1,7 +1,6 @@ package rdb_test import ( - "context" "reflect" "testing" @@ -22,7 +21,7 @@ func TestPrivilegeV1SchemaUpgradeFunc(t *testing.T) { "user_name": "username", } - actual, err := rdb.PrivilegeV1SchemaUpgradeFunc(context.Background(), v0Schema, nil) + actual, err := rdb.PrivilegeV1SchemaUpgradeFunc(t.Context(), v0Schema, nil) if err != nil { t.Fatalf("error migrating state: %s", err) } diff --git a/internal/services/scwconfig/scw_config_data_source_test.go b/internal/services/scwconfig/scw_config_data_source_test.go index dcb999debb..7f5b0fac44 100644 --- a/internal/services/scwconfig/scw_config_data_source_test.go +++ b/internal/services/scwconfig/scw_config_data_source_test.go @@ -1,7 +1,6 @@ package scwconfig_test import ( - "context" "os" "testing" @@ -24,7 +23,7 @@ func TestAccDataSourceConfig_ActiveProfile(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.Test(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, @@ -76,7 +75,7 @@ func TestAccDataSourceConfig_OtherProfile(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.Test(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, @@ -129,7 +128,7 @@ func TestAccDataSourceConfig_MixedProfile(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() resource.Test(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(t) }, diff --git a/internal/services/secret/secret_data_source_test.go b/internal/services/secret/secret_data_source_test.go index 123f8ef3ad..98bb0ad397 100644 --- a/internal/services/secret/secret_data_source_test.go +++ b/internal/services/secret/secret_data_source_test.go @@ -1,7 +1,6 @@ package secret_test import ( - "context" "fmt" "testing" @@ -15,7 +14,7 @@ func TestAccDataSourceSecret_Basic(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup() - ctx := context.Background() + ctx := t.Context() secretName := "scalewayDataSourceSecret" project, iamAPIKey, terminateFakeSideProject, err := acctest.CreateFakeIAMManager(tt) require.NoError(t, err)