Skip to content

Commit eb4e73c

Browse files
committed
Only define versioning strategies for plain templates
1 parent 8167a8f commit eb4e73c

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

cmd/internal/converters/project_converter.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,19 @@ func (c ProjectConverter) convertUsernamePasswordGitPersistence(project octopus2
248248
}
249249
}
250250

251-
func (c ProjectConverter) convertVersioningStrategy(project octopus2.Project) terraform2.TerraformVersioningStrategy {
251+
func (c ProjectConverter) convertVersioningStrategy(project octopus2.Project) *terraform2.TerraformVersioningStrategy {
252+
// Versioning based on packages creates a circular reference that Terraform can not resolve. The project
253+
// needs to know the name of the step and package to base the versioning on, and the deployment process
254+
// needs to know the project to attach itself to. If the versioning strategy is set to use packages,
255+
// simply return nil.
256+
if strutil.EmptyIfNil(project.VersioningStrategy.DonorPackageStepId) != "" ||
257+
project.VersioningStrategy.DonorPackage != nil {
258+
return nil
259+
}
260+
252261
versioningStrategy := terraform2.TerraformVersioningStrategy{
253262
Template: project.VersioningStrategy.Template,
254-
DonorPackageStepId: project.VersioningStrategy.DonorPackageStepId,
263+
DonorPackageStepId: nil,
255264
DonorPackage: nil,
256265
}
257266

@@ -262,7 +271,7 @@ func (c ProjectConverter) convertVersioningStrategy(project octopus2.Project) te
262271
}
263272
}
264273

265-
return versioningStrategy
274+
return &versioningStrategy
266275
}
267276

268277
// exportChildDependencies exports those dependencies that are always required regardless of the recursive flag.

cmd/internal/model/terraform/terraform_project.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type TerraformProject struct {
2020
GitLibraryPersistenceSettings *TerraformGitLibraryPersistenceSettings `hcl:"git_library_persistence_settings,block"`
2121
GitAnonymousPersistenceSettings *TerraformGitAnonymousPersistenceSettings `hcl:"git_anonymous_persistence_settings,block"`
2222
GitUsernamePasswordPersistenceSettings *TerraformGitUsernamePasswordPersistenceSettings `hcl:"git_username_password_persistence_settings,block"`
23-
VersioningStrategy TerraformVersioningStrategy `hcl:"versioning_strategy,block"`
23+
VersioningStrategy *TerraformVersioningStrategy `hcl:"versioning_strategy,block"`
2424
}
2525

2626
type TerraformTemplate struct {

wasm/convert_project.wasm

358 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)