Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions pkg/config/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ func newDefaults(project Project) Config {
ApplyForkFiles: ":open_file_folder: Apply fork specific files",
ImagesGenerated: ":vhs: Images generated",
},
SyncLabels: []string{"kind/sync-fork-to-upstream"},
DockerfileGen: dockerfilegen.DefaultParams(project.Path),
SyncLabels: []string{"kind/sync-fork-to-upstream"},
DockerfileGen: DockerfileGen{
Params: dockerfilegen.DefaultParams(project.Path),
},
}
}
5 changes: 5 additions & 0 deletions pkg/config/example_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
upstream: https://github.com/example/project.git
dockerfileGen:
skip: true
images-from:
- eventing
38 changes: 38 additions & 0 deletions pkg/config/new_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package config_test

import (
_ "embed"
"os"
"path"
"testing"

"github.com/openshift-knative/deviate/pkg/config"
"github.com/openshift-knative/deviate/pkg/log"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

//go:embed example_config.yaml
var configYaml string

func TestNew(t *testing.T) {
tmp := t.TempDir()
configPath := path.Join(tmp, ".deviate.yaml")
if err := os.WriteFile(configPath, []byte(configYaml), 0o600); err != nil {
require.NoError(t, err)
}
project := config.Project{
Path: tmp,
ConfigPath: configPath,
}
cfg, err := config.New(project, log.TestingLogger{T: t}, noopInformer{})
require.NoError(t, err)
assert.True(t, cfg.DockerfileGen.Skip)
assert.Equal(t, []string{"eventing"}, cfg.DockerfileGen.ImagesFromRepositories)
}

type noopInformer struct{}

func (n noopInformer) Remote(name string) (string, error) {
return name, nil
}
18 changes: 12 additions & 6 deletions pkg/config/structure.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import "github.com/openshift-knative/hack/pkg/dockerfilegen"

// Config for a deviate to operate.
type Config struct {
Upstream string `json:"upstream" valid:"required"`
Downstream string `json:"downstream" valid:"required"`
DryRun bool `json:"dryRun"`
GithubWorkflowsRemovalGlob string `json:"githubWorkflowsRemovalGlob" valid:"required"`
SyncLabels []string `json:"syncLabels" valid:"required"`
DockerfileGen dockerfilegen.Params `json:"dockerfileGen"`
Upstream string `json:"upstream" valid:"required"`
Downstream string `json:"downstream" valid:"required"`
DryRun bool `json:"dryRun"`
GithubWorkflowsRemovalGlob string `json:"githubWorkflowsRemovalGlob" valid:"required"`
SyncLabels []string `json:"syncLabels" valid:"required"`
DockerfileGen DockerfileGen `json:"dockerfileGen"`
ResyncReleases `json:"resyncReleases"`
Branches `json:"branches"`
Tags `json:"tags"`
Expand Down Expand Up @@ -56,3 +56,9 @@ type Searches struct {
UpstreamReleases string `json:"upstreamReleases" valid:"required"`
DownstreamReleases string `json:"downstreamReleases" valid:"required"`
}

// DockerfileGen wraps dockerfilegen.Params adding a skip param.
type DockerfileGen struct {
dockerfilegen.Params
Skip bool `json:"skip"`
}
18 changes: 18 additions & 0 deletions pkg/log/testing.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package log

import "testing"

// TestingLogger implements a testing logger.
type TestingLogger struct {
T testing.TB
}

func (t TestingLogger) Println(v ...interface{}) {
t.T.Log(v...)
}

func (t TestingLogger) Printf(format string, v ...interface{}) {
t.T.Logf(format, v...)
}

var _ Logger = TestingLogger{}
8 changes: 6 additions & 2 deletions pkg/sync/generate_images.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,20 @@ import (

func (o Operation) generateImages(rel release) step {
return func() error {
o.Println("- Generating images")
params := o.Config.DockerfileGen
if params.Skip {
o.Println("- Skipping image generation")
return nil
}
o.Println("- Generating images")
var closer func()
var err error
params.ProjectFilePath, closer, err = tempProjectFile(o, rel)
defer closer()
if err != nil {
return err
}
return dockerfilegen.GenerateDockerfiles(params)
return dockerfilegen.GenerateDockerfiles(params.Params)
}
}

Expand Down
Loading