@@ -22,6 +22,13 @@ import (
2222
2323type Ci struct {}
2424
25+ type Results struct {
26+ LintOutput string
27+ SecurityScan * dagger.File
28+ VulnerabilityScan * dagger.File
29+ Image * dagger.Container
30+ }
31+
2532// Returns a Container built from the Dockerfile in the provided Directory
2633func (m * Ci ) Build (_ context.Context , dir * dagger.Directory ) * dagger.Container {
2734 return dag .Container ().Build (dir )
@@ -34,7 +41,7 @@ func (m *Ci) Lint(ctx context.Context, dir *dagger.Directory) (string, error) {
3441 WithMountedDirectory ("/mnt" , dir ).
3542 WithWorkdir ("/mnt" ).
3643 WithExec ([]string {"gem" , "install" , "haml-lint" }).
37- WithExec ([]string {"haml-lint" , "--reporter " , "json" , "." }).
44+ WithExec ([]string {"haml-lint" , "-r " , "json" , "." }).
3845 Stdout (ctx )
3946}
4047
@@ -128,3 +135,17 @@ func (m *Ci) Vulnscan(ctx context.Context, sbom *dagger.File) *dagger.File {
128135
129136 return trivy .Sbom (sbom ).Report ("json" )
130137}
138+
139+ // Executes all the steps and returns a Results object
140+ func (m * Ci ) Ci (ctx context.Context , dir * dagger.Directory ) * Results {
141+ lintOutput , _ := m .Lint (ctx , dir )
142+ securityScan := m .Sast (ctx , dir )
143+ vulnerabilityScan := m .Vulnscan (ctx , m .SbomBuild (ctx , dir ))
144+ image := m .Build (ctx , dir )
145+ return & Results {
146+ LintOutput : lintOutput ,
147+ SecurityScan : securityScan ,
148+ VulnerabilityScan : vulnerabilityScan ,
149+ Image : image ,
150+ }
151+ }
0 commit comments