Skip to content

Commit ac427df

Browse files
authored
🎁 Allow to skip dockerfilegen (#44)
* Allow to skip dockerfilegen * Bump CI
1 parent 1cb2a61 commit ac427df

File tree

6 files changed

+83
-10
lines changed

6 files changed

+83
-10
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/example_config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
upstream: https://github.com/example/project.git
2+
dockerfileGen:
3+
skip: true
4+
images-from:
5+
- eventing

pkg/config/new_test.go

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

pkg/config/structure.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import "github.com/openshift-knative/hack/pkg/dockerfilegen"
44

55
// Config for a deviate to operate.
66
type Config struct {
7-
Upstream string `json:"upstream" valid:"required"`
8-
Downstream string `json:"downstream" valid:"required"`
9-
DryRun bool `json:"dryRun"`
10-
GithubWorkflowsRemovalGlob string `json:"githubWorkflowsRemovalGlob" valid:"required"`
11-
SyncLabels []string `json:"syncLabels" valid:"required"`
12-
DockerfileGen dockerfilegen.Params `json:"dockerfileGen"`
7+
Upstream string `json:"upstream" valid:"required"`
8+
Downstream string `json:"downstream" valid:"required"`
9+
DryRun bool `json:"dryRun"`
10+
GithubWorkflowsRemovalGlob string `json:"githubWorkflowsRemovalGlob" valid:"required"`
11+
SyncLabels []string `json:"syncLabels" valid:"required"`
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)