This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit eff1b4f3b456a0990b9c8d490af492e0ff42de0b Author: Antonin Stefanutti <[email protected]> AuthorDate: Wed Aug 18 14:34:21 2021 +0200 chore(native): No need to compute transitive dependencies for native builds --- pkg/builder/image.go | 20 ++++++++++++++++++++ pkg/builder/project.go | 34 +++++++++++++--------------------- pkg/builder/project_test.go | 4 ++-- pkg/builder/quarkus.go | 19 ++++++++++--------- pkg/trait/builder.go | 2 +- pkg/trait/quarkus.go | 6 +++--- pkg/trait/quarkus_test.go | 2 +- 7 files changed, 50 insertions(+), 37 deletions(-) diff --git a/pkg/builder/image.go b/pkg/builder/image.go index da702bc..ac33a6f 100644 --- a/pkg/builder/image.go +++ b/pkg/builder/image.go @@ -39,6 +39,26 @@ const ( DependenciesDir = "dependencies" ) +func init() { + registerSteps(Image) +} + +type imageSteps struct { + IncrementalImageContext Step + NativeImageContext Step + StandardImageContext Step + ExecutableDockerfile Step + JvmDockerfile Step +} + +var Image = imageSteps{ + IncrementalImageContext: NewStep(ApplicationPackagePhase, incrementalImageContext), + NativeImageContext: NewStep(ApplicationPackagePhase, nativeImageContext), + StandardImageContext: NewStep(ApplicationPackagePhase, standardImageContext), + ExecutableDockerfile: NewStep(ApplicationPackagePhase+1, executableDockerfile), + JvmDockerfile: NewStep(ApplicationPackagePhase+1, jvmDockerfile), +} + type artifactsSelector func(ctx *builderContext) error func nativeImageContext(ctx *builderContext) error { diff --git a/pkg/builder/project.go b/pkg/builder/project.go index 517e879..4255c61 100644 --- a/pkg/builder/project.go +++ b/pkg/builder/project.go @@ -26,41 +26,33 @@ import ( ) func init() { - registerSteps(Steps) + registerSteps(Project) + + Project.CommonSteps = []Step{ + Project.CleanUpBuildDir, + Project.GenerateJavaKeystore, + Project.GenerateProjectSettings, + Project.InjectDependencies, + Project.SanitizeDependencies, + } } -type steps struct { +type projectSteps struct { CleanUpBuildDir Step GenerateJavaKeystore Step GenerateProjectSettings Step InjectDependencies Step SanitizeDependencies Step - IncrementalImageContext Step - NativeImageContext Step - StandardImageContext Step - ExecutableDockerfile Step - JvmDockerfile Step + + CommonSteps []Step } -var Steps = steps{ +var Project = projectSteps{ CleanUpBuildDir: NewStep(ProjectGenerationPhase-1, cleanUpBuildDir), GenerateJavaKeystore: NewStep(ProjectGenerationPhase, generateJavaKeystore), GenerateProjectSettings: NewStep(ProjectGenerationPhase+1, generateProjectSettings), InjectDependencies: NewStep(ProjectGenerationPhase+2, injectDependencies), SanitizeDependencies: NewStep(ProjectGenerationPhase+3, sanitizeDependencies), - IncrementalImageContext: NewStep(ApplicationPackagePhase, incrementalImageContext), - NativeImageContext: NewStep(ApplicationPackagePhase, nativeImageContext), - StandardImageContext: NewStep(ApplicationPackagePhase, standardImageContext), - ExecutableDockerfile: NewStep(ApplicationPackagePhase+1, executableDockerfile), - JvmDockerfile: NewStep(ApplicationPackagePhase+1, jvmDockerfile), -} - -var DefaultSteps = []Step{ - Steps.CleanUpBuildDir, - Steps.GenerateJavaKeystore, - Steps.GenerateProjectSettings, - Steps.InjectDependencies, - Steps.SanitizeDependencies, } func cleanUpBuildDir(ctx *builderContext) error { diff --git a/pkg/builder/project_test.go b/pkg/builder/project_test.go index 7e03333..9855cac 100644 --- a/pkg/builder/project_test.go +++ b/pkg/builder/project_test.go @@ -71,7 +71,7 @@ func TestMavenSettingsFromConfigMap(t *testing.T) { }, } - err = Steps.GenerateProjectSettings.execute(&ctx) + err = Project.GenerateProjectSettings.execute(&ctx) assert.Nil(t, err) assert.Equal(t, []byte("setting-data"), ctx.Maven.SettingsData) @@ -118,7 +118,7 @@ func TestMavenSettingsFromSecret(t *testing.T) { }, } - err = Steps.GenerateProjectSettings.execute(&ctx) + err = Project.GenerateProjectSettings.execute(&ctx) assert.Nil(t, err) assert.Equal(t, []byte("setting-data"), ctx.Maven.SettingsData) diff --git a/pkg/builder/quarkus.go b/pkg/builder/quarkus.go index 1e367b2..cdec940 100644 --- a/pkg/builder/quarkus.go +++ b/pkg/builder/quarkus.go @@ -35,7 +35,13 @@ import ( ) func init() { - registerSteps(quarkus) + registerSteps(Quarkus) + + Quarkus.CommonSteps = []Step{ + Quarkus.LoadCamelQuarkusCatalog, + Quarkus.GenerateQuarkusProject, + Quarkus.BuildQuarkusRunner, + } } type quarkusSteps struct { @@ -43,22 +49,17 @@ type quarkusSteps struct { GenerateQuarkusProject Step BuildQuarkusRunner Step ComputeQuarkusDependencies Step + + CommonSteps []Step } -var quarkus = quarkusSteps{ +var Quarkus = quarkusSteps{ LoadCamelQuarkusCatalog: NewStep(InitPhase, loadCamelQuarkusCatalog), GenerateQuarkusProject: NewStep(ProjectGenerationPhase, generateQuarkusProject), BuildQuarkusRunner: NewStep(ProjectBuildPhase, buildQuarkusRunner), ComputeQuarkusDependencies: NewStep(ProjectBuildPhase+1, computeQuarkusDependencies), } -var QuarkusSteps = []Step{ - quarkus.LoadCamelQuarkusCatalog, - quarkus.GenerateQuarkusProject, - quarkus.BuildQuarkusRunner, - quarkus.ComputeQuarkusDependencies, -} - func loadCamelQuarkusCatalog(ctx *builderContext) error { catalog, err := camel.LoadCatalog(ctx.C, ctx.Client, ctx.Namespace, ctx.Build.Runtime) if err != nil { diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go index d85414e..7343981 100644 --- a/pkg/trait/builder.go +++ b/pkg/trait/builder.go @@ -166,7 +166,7 @@ func (t *builderTrait) builderTask(e *Environment) (*v1.BuilderTask, error) { } steps := make([]builder.Step, 0) - steps = append(steps, builder.DefaultSteps...) + steps = append(steps, builder.Project.CommonSteps...) // sort steps by phase sort.SliceStable(steps, func(i, j int) bool { diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go index 97f05fb..d77b614 100644 --- a/pkg/trait/quarkus.go +++ b/pkg/trait/quarkus.go @@ -92,14 +92,14 @@ func (t *quarkusTrait) Apply(e *Environment) error { return err } - steps = append(steps, builder.QuarkusSteps...) + steps = append(steps, builder.Quarkus.CommonSteps...) if t.isNativePackageType() { build.Maven.Properties["quarkus.package.type"] = string(nativePackageType) - steps = append(steps, builder.Steps.NativeImageContext, builder.Steps.ExecutableDockerfile) + steps = append(steps, builder.Image.NativeImageContext, builder.Image.ExecutableDockerfile) } else { build.Maven.Properties["quarkus.package.type"] = string(fastJarPackageType) - steps = append(steps, builder.Steps.IncrementalImageContext, builder.Steps.JvmDockerfile) + steps = append(steps, builder.Quarkus.ComputeQuarkusDependencies, builder.Image.IncrementalImageContext, builder.Image.JvmDockerfile) } // Sort steps by phase diff --git a/pkg/trait/quarkus_test.go b/pkg/trait/quarkus_test.go index 9051401..e09cc2b 100644 --- a/pkg/trait/quarkus_test.go +++ b/pkg/trait/quarkus_test.go @@ -42,7 +42,7 @@ func TestConfigureQuarkusTraitBuildSubmitted(t *testing.T) { build := getBuilderTask(environment.BuildTasks) assert.NotNil(t, t, build) - assert.Len(t, build.Steps, len(builder.QuarkusSteps)+2) + assert.Len(t, build.Steps, len(builder.Quarkus.CommonSteps)+3) } func TestConfigureDisabledQuarkusTraitShouldFail(t *testing.T) {
