Skip to content

Commit ac7c2ef

Browse files
authored
refactor core functionality and models into separate folder (#323)
* refactor core functionality and models into separate folder to be able to pull it up later
1 parent f5ec5d0 commit ac7c2ef

File tree

22 files changed

+525
-428
lines changed

22 files changed

+525
-428
lines changed

cmd/digger/main.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import (
44
"context"
55
"digger/pkg/azure"
66
"digger/pkg/configuration"
7+
core_locking "digger/pkg/core/locking"
8+
"digger/pkg/core/models"
9+
core_storage "digger/pkg/core/storage"
710
"digger/pkg/digger"
811
"digger/pkg/gcp"
912
dg_github "digger/pkg/github"
1013
github_models "digger/pkg/github/models"
1114
"digger/pkg/gitlab"
1215
"digger/pkg/locking"
13-
"digger/pkg/models"
1416
"digger/pkg/reporting"
1517
"digger/pkg/storage"
1618
"digger/pkg/usage"
@@ -22,7 +24,7 @@ import (
2224
"strings"
2325
)
2426

25-
func gitHubCI(lock locking.Lock) {
27+
func gitHubCI(lock core_locking.Lock) {
2628
println("Using GitHub.")
2729
githubActor := os.Getenv("GITHUB_ACTOR")
2830
if githubActor != "" {
@@ -121,7 +123,7 @@ func gitHubCI(lock locking.Lock) {
121123
}()
122124
}
123125

124-
func gitLabCI(lock locking.Lock) {
126+
func gitLabCI(lock core_locking.Lock) {
125127
println("Using GitLab.")
126128

127129
projectNamespace := os.Getenv("CI_PROJECT_NAMESPACE")
@@ -212,7 +214,7 @@ func gitLabCI(lock locking.Lock) {
212214
}()
213215
}
214216

215-
func azureCI(lock locking.Lock) {
217+
func azureCI(lock core_locking.Lock) {
216218
fmt.Println("> Azure CI detected")
217219
azureContext := os.Getenv("AZURE_CONTEXT")
218220
azureToken := os.Getenv("AZURE_TOKEN")
@@ -260,7 +262,7 @@ func azureCI(lock locking.Lock) {
260262
fmt.Printf("command: %s, project: %s\n", strings.Join(v.Commands, ", "), v.ProjectName)
261263
}
262264

263-
var planStorage storage.PlanStorage
265+
var planStorage core_storage.PlanStorage
264266
diggerProjectNamespace := parsedAzureContext.BaseUrl + "/" + parsedAzureContext.ProjectName
265267

266268
reporter := &reporting.CiReporter{
@@ -335,8 +337,8 @@ func main() {
335337
}
336338
}
337339

338-
func newPlanStorage(ghToken string, ghRepoOwner string, ghRepositoryName string, requestedBy string, prNumber int) storage.PlanStorage {
339-
var planStorage storage.PlanStorage
340+
func newPlanStorage(ghToken string, ghRepoOwner string, ghRepositoryName string, requestedBy string, prNumber int) core_storage.PlanStorage {
341+
var planStorage core_storage.PlanStorage
340342

341343
uploadDestination := strings.ToLower(os.Getenv("PLAN_UPLOAD_DESTINATION"))
342344
if uploadDestination == "github" {

pkg/azure/azure.go

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55
"digger/pkg/ci"
66
"digger/pkg/configuration"
7-
"digger/pkg/models"
7+
"digger/pkg/core/models"
88
"digger/pkg/utils"
99
"encoding/json"
1010
"errors"
@@ -351,15 +351,22 @@ func ConvertAzureEventToCommands(parseAzureContext Azure, impactedProjects []con
351351
}
352352

353353
stateEnvVars, commandEnvVars := configuration.CollectEnvVars(workflow.EnvVars)
354-
354+
var coreApplyStage models.Stage
355+
if workflow.Apply != nil {
356+
coreApplyStage = workflow.Apply.ToCoreStage()
357+
}
358+
var corePlanStage models.Stage
359+
if workflow.Plan != nil {
360+
corePlanStage = workflow.Plan.ToCoreStage()
361+
}
355362
commandsPerProject = append(commandsPerProject, models.ProjectCommand{
356363
ProjectName: project.Name,
357364
ProjectDir: project.Dir,
358365
ProjectWorkspace: project.Workspace,
359366
Terragrunt: project.Terragrunt,
360367
Commands: workflow.Configuration.OnPullRequestPushed,
361-
ApplyStage: workflow.Apply,
362-
PlanStage: workflow.Plan,
368+
ApplyStage: &coreApplyStage,
369+
PlanStage: &corePlanStage,
363370
CommandEnvVars: commandEnvVars,
364371
StateEnvVars: stateEnvVars,
365372
})
@@ -373,15 +380,22 @@ func ConvertAzureEventToCommands(parseAzureContext Azure, impactedProjects []con
373380
}
374381

375382
stateEnvVars, commandEnvVars := configuration.CollectEnvVars(workflow.EnvVars)
376-
383+
var coreApplyStage models.Stage
384+
if workflow.Apply != nil {
385+
coreApplyStage = workflow.Apply.ToCoreStage()
386+
}
387+
var corePlanStage models.Stage
388+
if workflow.Plan != nil {
389+
corePlanStage = workflow.Plan.ToCoreStage()
390+
}
377391
commandsPerProject = append(commandsPerProject, models.ProjectCommand{
378392
ProjectName: project.Name,
379393
ProjectDir: project.Dir,
380394
ProjectWorkspace: project.Workspace,
381395
Terragrunt: project.Terragrunt,
382396
Commands: workflow.Configuration.OnPullRequestClosed,
383-
ApplyStage: workflow.Apply,
384-
PlanStage: workflow.Plan,
397+
ApplyStage: &coreApplyStage,
398+
PlanStage: &corePlanStage,
385399
CommandEnvVars: commandEnvVars,
386400
StateEnvVars: stateEnvVars,
387401
})
@@ -395,15 +409,22 @@ func ConvertAzureEventToCommands(parseAzureContext Azure, impactedProjects []con
395409
return nil, false, fmt.Errorf("failed to find workflow config '%s' for project '%s'", project.Workflow, project.Name)
396410
}
397411
stateEnvVars, commandEnvVars := configuration.CollectEnvVars(workflow.EnvVars)
398-
412+
var coreApplyStage models.Stage
413+
if workflow.Apply != nil {
414+
coreApplyStage = workflow.Apply.ToCoreStage()
415+
}
416+
var corePlanStage models.Stage
417+
if workflow.Plan != nil {
418+
corePlanStage = workflow.Plan.ToCoreStage()
419+
}
399420
commandsPerProject = append(commandsPerProject, models.ProjectCommand{
400421
ProjectName: project.Name,
401422
ProjectDir: project.Dir,
402423
ProjectWorkspace: project.Workspace,
403424
Terragrunt: project.Terragrunt,
404425
Commands: workflow.Configuration.OnCommitToDefault,
405-
ApplyStage: workflow.Apply,
406-
PlanStage: workflow.Plan,
426+
ApplyStage: &coreApplyStage,
427+
PlanStage: &corePlanStage,
407428
CommandEnvVars: commandEnvVars,
408429
StateEnvVars: stateEnvVars,
409430
})
File renamed without changes.

pkg/configuration/digger_config.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package configuration
22

33
import (
4+
"digger/pkg/core/models"
45
"digger/pkg/utils"
56
"errors"
67
"fmt"
@@ -57,6 +58,14 @@ type Stage struct {
5758
Steps []Step `yaml:"steps"`
5859
}
5960

61+
func (s *Stage) ToCoreStage() models.Stage {
62+
var steps []models.Step
63+
for _, step := range s.Steps {
64+
steps = append(steps, step.ToCoreStep())
65+
}
66+
return models.Stage{Steps: steps}
67+
}
68+
6069
type Workflow struct {
6170
EnvVars EnvVars `yaml:"env_vars"`
6271
Plan *Stage `yaml:"plan,omitempty"`
@@ -157,6 +166,15 @@ type Step struct {
157166
Shell string
158167
}
159168

169+
func (s *Step) ToCoreStep() models.Step {
170+
return models.Step{
171+
Action: s.Action,
172+
Value: s.Value,
173+
ExtraArgs: s.ExtraArgs,
174+
Shell: s.Shell,
175+
}
176+
}
177+
160178
func (s *Step) UnmarshalYAML(value *yaml.Node) error {
161179
if value.Kind == yaml.ScalarNode {
162180
return value.Decode(&s.Action)

0 commit comments

Comments
 (0)