@@ -4,17 +4,18 @@ import (
4
4
"context"
5
5
"encoding/json"
6
6
"fmt"
7
- "github.com/diggerhq/digger/cli/pkg/comment_updater"
8
- core_drift "github.com/diggerhq/digger/cli/pkg/core/drift"
9
- core_reporting "github.com/diggerhq/digger/cli/pkg/core/reporting"
10
- "github.com/diggerhq/digger/cli/pkg/drift"
11
7
"log"
12
8
"net/http"
13
9
"os"
14
10
"strconv"
15
11
"strings"
16
12
"time"
17
13
14
+ "github.com/diggerhq/digger/cli/pkg/comment_updater"
15
+ core_drift "github.com/diggerhq/digger/cli/pkg/core/drift"
16
+ core_reporting "github.com/diggerhq/digger/cli/pkg/core/reporting"
17
+ "github.com/diggerhq/digger/cli/pkg/drift"
18
+
18
19
"github.com/diggerhq/digger/cli/pkg/azure"
19
20
"github.com/diggerhq/digger/cli/pkg/bitbucket"
20
21
core_backend "github.com/diggerhq/digger/cli/pkg/core/backend"
@@ -263,23 +264,23 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
263
264
workflow := diggerConfig .Workflows [projectConfig .Workflow ]
264
265
265
266
stateEnvVars , commandEnvVars := digger_config .CollectTerraformEnvConfig (workflow .EnvVars )
266
-
267
+
267
268
StateEnvProvider , CommandEnvProvider := orchestrator .GetStateAndCommandProviders (projectConfig )
268
-
269
+
269
270
job := orchestrator.Job {
270
- ProjectName : projectConfig .Name ,
271
- ProjectDir : projectConfig .Dir ,
272
- ProjectWorkspace : projectConfig .Workspace ,
273
- Terragrunt : projectConfig .Terragrunt ,
274
- OpenTofu : projectConfig .OpenTofu ,
275
- Commands : []string {"digger drift-detect" },
276
- ApplyStage : orchestrator .ToConfigStage (workflow .Apply ),
277
- PlanStage : orchestrator .ToConfigStage (workflow .Plan ),
278
- CommandEnvVars : commandEnvVars ,
279
- StateEnvVars : stateEnvVars ,
280
- RequestedBy : githubActor ,
281
- Namespace : ghRepository ,
282
- EventName : "drift-detect" ,
271
+ ProjectName : projectConfig .Name ,
272
+ ProjectDir : projectConfig .Dir ,
273
+ ProjectWorkspace : projectConfig .Workspace ,
274
+ Terragrunt : projectConfig .Terragrunt ,
275
+ OpenTofu : projectConfig .OpenTofu ,
276
+ Commands : []string {"digger drift-detect" },
277
+ ApplyStage : orchestrator .ToConfigStage (workflow .Apply ),
278
+ PlanStage : orchestrator .ToConfigStage (workflow .Plan ),
279
+ CommandEnvVars : commandEnvVars ,
280
+ StateEnvVars : stateEnvVars ,
281
+ RequestedBy : githubActor ,
282
+ Namespace : ghRepository ,
283
+ EventName : "drift-detect" ,
283
284
StateEnvProvider : StateEnvProvider ,
284
285
CommandEnvProvider : CommandEnvProvider ,
285
286
}
@@ -683,19 +684,19 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
683
684
StateEnvProvider , CommandEnvProvider := orchestrator .GetStateAndCommandProviders (projectConfig )
684
685
685
686
job := orchestrator.Job {
686
- ProjectName : projectConfig .Name ,
687
- ProjectDir : projectConfig .Dir ,
688
- ProjectWorkspace : projectConfig .Workspace ,
689
- Terragrunt : projectConfig .Terragrunt ,
690
- OpenTofu : projectConfig .OpenTofu ,
691
- Commands : []string {"digger drift-detect" },
692
- ApplyStage : orchestrator .ToConfigStage (workflow .Apply ),
693
- PlanStage : orchestrator .ToConfigStage (workflow .Plan ),
694
- CommandEnvVars : commandEnvVars ,
695
- StateEnvVars : stateEnvVars ,
696
- RequestedBy : actor ,
697
- Namespace : repository ,
698
- EventName : "drift-detect" ,
687
+ ProjectName : projectConfig .Name ,
688
+ ProjectDir : projectConfig .Dir ,
689
+ ProjectWorkspace : projectConfig .Workspace ,
690
+ Terragrunt : projectConfig .Terragrunt ,
691
+ OpenTofu : projectConfig .OpenTofu ,
692
+ Commands : []string {"digger drift-detect" },
693
+ ApplyStage : orchestrator .ToConfigStage (workflow .Apply ),
694
+ PlanStage : orchestrator .ToConfigStage (workflow .Plan ),
695
+ CommandEnvVars : commandEnvVars ,
696
+ StateEnvVars : stateEnvVars ,
697
+ RequestedBy : actor ,
698
+ Namespace : repository ,
699
+ EventName : "drift-detect" ,
699
700
CommandEnvProvider : CommandEnvProvider ,
700
701
StateEnvProvider : StateEnvProvider ,
701
702
}
@@ -887,7 +888,8 @@ func newPlanStorage(ghToken string, ghRepoOwner string, ghRepositoryName string,
887
888
var planStorage core_storage.PlanStorage
888
889
889
890
uploadDestination := strings .ToLower (os .Getenv ("PLAN_UPLOAD_DESTINATION" ))
890
- if uploadDestination == "github" {
891
+ switch {
892
+ case uploadDestination == "github" :
891
893
zipManager := utils.Zipper {}
892
894
planStorage = & storage.GithubPlanStorage {
893
895
Client : github .NewTokenClient (context .Background (), ghToken ),
@@ -896,19 +898,33 @@ func newPlanStorage(ghToken string, ghRepoOwner string, ghRepositoryName string,
896
898
PullRequestNumber : * prNumber ,
897
899
ZipManager : zipManager ,
898
900
}
899
- } else if uploadDestination == "gcp" {
901
+ case uploadDestination == "gcp" :
900
902
ctx , client := gcp .GetGoogleStorageClient ()
901
903
bucketName := strings .ToLower (os .Getenv ("GOOGLE_STORAGE_BUCKET" ))
902
904
if bucketName == "" {
903
- reportErrorAndExit (requestedBy , fmt . Sprintf ( "GOOGLE_STORAGE_BUCKET is not defined" ) , 9 )
905
+ reportErrorAndExit (requestedBy , "GOOGLE_STORAGE_BUCKET is not defined" , 9 )
904
906
}
905
907
bucket := client .Bucket (bucketName )
906
908
planStorage = & storage.PlanStorageGcp {
907
909
Client : client ,
908
910
Bucket : bucket ,
909
911
Context : ctx ,
910
912
}
911
- } else if uploadDestination == "gitlab" {
913
+ case uploadDestination == "aws" :
914
+ ctx , client , err := storage .GetAWSStorageClient ()
915
+ if err != nil {
916
+ reportErrorAndExit (requestedBy , fmt .Sprintf ("Failed to create AWS storage client: %s" , err ), 9 )
917
+ }
918
+ bucketName := strings .ToLower (os .Getenv ("AWS_S3_BUCKET" ))
919
+ if bucketName == "" {
920
+ reportErrorAndExit (requestedBy , "AWS_S3_BUCKET is not defined" , 9 )
921
+ }
922
+ planStorage = & storage.PlanStorageAWS {
923
+ Context : ctx ,
924
+ Client : client ,
925
+ Bucket : bucketName ,
926
+ }
927
+ case uploadDestination == "gitlab" :
912
928
//TODO implement me
913
929
}
914
930
0 commit comments