Skip to content

Commit f6daee0

Browse files
committed
Allow to skip dockerfilegen
1 parent ead21be commit f6daee0

File tree

5 files changed

+74
-5
lines changed

5 files changed

+74
-5
lines changed

pkg/config/defaults.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ func newDefaults(project Project) Config {
3737
ApplyForkFiles: ":open_file_folder: Apply fork specific files",
3838
ImagesGenerated: ":vhs: Images generated",
3939
},
40-
SyncLabels: []string{"kind/sync-fork-to-upstream"},
41-
DockerfileGen: dockerfilegen.DefaultParams(project.Path),
40+
SyncLabels: []string{"kind/sync-fork-to-upstream"},
41+
DockerfileGen: DockerfileGen{
42+
Params: dockerfilegen.DefaultParams(project.Path),
43+
},
4244
}
4345
}

pkg/config/new_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package config_test
2+
3+
import (
4+
"os"
5+
"path"
6+
"testing"
7+
8+
"github.com/openshift-knative/deviate/pkg/config"
9+
"github.com/openshift-knative/deviate/pkg/log"
10+
"github.com/stretchr/testify/assert"
11+
"github.com/stretchr/testify/require"
12+
)
13+
14+
func TestNew(t *testing.T) {
15+
configYaml := `upstream: https://github.com/example/project.git
16+
dockerfileGen:
17+
skip: true
18+
images-from:
19+
- eventing`
20+
tmp := t.TempDir()
21+
configPath := path.Join(tmp, ".deviate.yaml")
22+
if err := os.WriteFile(configPath, []byte(configYaml), 0o650); err != nil {
23+
require.NoError(t, err)
24+
}
25+
project := config.Project{
26+
Path: tmp,
27+
ConfigPath: configPath,
28+
}
29+
cfg, err := config.New(project, log.TestingLogger{T: t}, noopInformer{})
30+
require.NoError(t, err)
31+
assert.True(t, cfg.DockerfileGen.Skip)
32+
assert.Equal(t, cfg.DockerfileGen.ImagesFromRepositories, []string{"eventing"})
33+
}
34+
35+
type noopInformer struct{}
36+
37+
func (n noopInformer) Remote(name string) (string, error) {
38+
return name, nil
39+
}

pkg/config/structure.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type Config struct {
99
DryRun bool `json:"dryRun"`
1010
GithubWorkflowsRemovalGlob string `json:"githubWorkflowsRemovalGlob" valid:"required"`
1111
SyncLabels []string `json:"syncLabels" valid:"required"`
12-
DockerfileGen dockerfilegen.Params `json:"dockerfileGen"`
12+
DockerfileGen DockerfileGen `json:"dockerfileGen"`
1313
ResyncReleases `json:"resyncReleases"`
1414
Branches `json:"branches"`
1515
Tags `json:"tags"`
@@ -56,3 +56,9 @@ type Searches struct {
5656
UpstreamReleases string `json:"upstreamReleases" valid:"required"`
5757
DownstreamReleases string `json:"downstreamReleases" valid:"required"`
5858
}
59+
60+
// DockerfileGen wraps dockerfilegen.Params adding a skip param.
61+
type DockerfileGen struct {
62+
dockerfilegen.Params
63+
Skip bool `json:"skip"`
64+
}

pkg/log/testing.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package log
2+
3+
import "testing"
4+
5+
// TestingLogger implements a testing logger.
6+
type TestingLogger struct {
7+
T testing.TB
8+
}
9+
10+
func (t TestingLogger) Println(v ...interface{}) {
11+
t.T.Log(v...)
12+
}
13+
14+
func (t TestingLogger) Printf(format string, v ...interface{}) {
15+
t.T.Logf(format, v...)
16+
}
17+
18+
var _ Logger = TestingLogger{}

pkg/sync/generate_images.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,20 @@ import (
1212

1313
func (o Operation) generateImages(rel release) step {
1414
return func() error {
15-
o.Println("- Generating images")
1615
params := o.Config.DockerfileGen
16+
if params.Skip {
17+
o.Println("- Skipping image generation")
18+
return nil
19+
}
20+
o.Println("- Generating images")
1721
var closer func()
1822
var err error
1923
params.ProjectFilePath, closer, err = tempProjectFile(o, rel)
2024
defer closer()
2125
if err != nil {
2226
return err
2327
}
24-
return dockerfilegen.GenerateDockerfiles(params)
28+
return dockerfilegen.GenerateDockerfiles(params.Params)
2529
}
2630
}
2731

0 commit comments

Comments
 (0)