You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/02/01 08:17:41 UTC
[camel-k] branch master updated: chore(build): Sort builder steps
by phase in Build spec
This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/master by this push:
new 9a1faab chore(build): Sort builder steps by phase in Build spec
9a1faab is described below
commit 9a1faabea92753c78b6b1857478fff0b23a89011
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Fri Jan 29 18:05:03 2021 +0100
chore(build): Sort builder steps by phase in Build spec
---
pkg/trait/builder.go | 29 +++++++++++++++++++----------
pkg/trait/quarkus.go | 5 ++---
pkg/trait/quarkus_test.go | 13 ++++++-------
3 files changed, 27 insertions(+), 20 deletions(-)
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 3fa45d7..1c1c4df 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -20,10 +20,10 @@ package trait
import (
"fmt"
"path"
+ "sort"
"strconv"
"strings"
- "github.com/apache/camel-k/pkg/builder/spectrum"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
@@ -34,6 +34,7 @@ import (
"github.com/apache/camel-k/pkg/builder"
"github.com/apache/camel-k/pkg/builder/kaniko"
"github.com/apache/camel-k/pkg/builder/s2i"
+ "github.com/apache/camel-k/pkg/builder/spectrum"
"github.com/apache/camel-k/pkg/util/defaults"
)
@@ -179,25 +180,33 @@ func (t *builderTrait) builderTask(e *Environment) *v1.BuilderTask {
BaseImage: e.Platform.Status.Build.BaseImage,
Runtime: e.CamelCatalog.Runtime,
Dependencies: e.IntegrationKit.Spec.Dependencies,
- //TODO: sort steps for easier read
- Steps: builder.StepIDsFor(builder.DefaultSteps...),
- Properties: e.Platform.Status.Build.Properties,
- Timeout: e.Platform.Status.Build.GetTimeout(),
- Maven: e.Platform.Status.Build.Maven,
+ Properties: e.Platform.Status.Build.Properties,
+ Timeout: e.Platform.Status.Build.GetTimeout(),
+ Maven: e.Platform.Status.Build.Maven,
}
+ steps := make([]builder.Step, 0)
+ steps = append(steps, builder.DefaultSteps...)
+
switch e.Platform.Status.Build.PublishStrategy {
case v1.IntegrationPlatformBuildPublishStrategyBuildah, v1.IntegrationPlatformBuildPublishStrategyKaniko:
task.BuildDir = path.Join(builderDir, e.IntegrationKit.Name)
case v1.IntegrationPlatformBuildPublishStrategyS2I:
- task.Steps = append(task.Steps, builder.StepIDsFor(s2i.S2iSteps...)...)
+ steps = append(steps, s2i.S2iSteps...)
case v1.IntegrationPlatformBuildPublishStrategySpectrum:
- task.Steps = append(task.Steps, builder.StepIDsFor(spectrum.SpectrumSteps...)...)
+ steps = append(steps, spectrum.SpectrumSteps...)
}
quarkus := e.Catalog.GetTrait("quarkus").(*quarkusTrait)
- quarkus.addBuildSteps(task)
+ quarkus.addBuildSteps(&steps)
+
+ // sort steps by phase
+ sort.SliceStable(steps, func(i, j int) bool {
+ return steps[i].Phase() < steps[j].Phase()
+ })
+
+ task.Steps = builder.StepIDsFor(steps...)
return task
}
@@ -241,7 +250,7 @@ func (t *builderTrait) buildahTask(e *Environment) (*v1.ImageTask, error) {
}
mountRegistryConfigMap(e.Platform.Status.Build.Registry.CA, config, &volumes, &volumeMounts)
// This is easier to use the --cert-dir option, otherwise Buildah defaults to looking up certificates
- //into a directory named after the registry address
+ // into a directory named after the registry address
bud = append(bud[:2], append([]string{"--cert-dir=/etc/containers/certs.d"}, bud[2:]...)...)
push = append(push[:2], append([]string{"--cert-dir=/etc/containers/certs.d"}, push[2:]...)...)
}
diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go
index ea2b3d5..4227221 100644
--- a/pkg/trait/quarkus.go
+++ b/pkg/trait/quarkus.go
@@ -18,7 +18,6 @@ limitations under the License.
package trait
import (
- v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
"github.com/apache/camel-k/pkg/builder"
"github.com/apache/camel-k/pkg/builder/runtime"
)
@@ -62,6 +61,6 @@ func (t *quarkusTrait) InfluencesKit() bool {
return true
}
-func (t *quarkusTrait) addBuildSteps(task *v1.BuilderTask) {
- task.Steps = append(task.Steps, builder.StepIDsFor(runtime.QuarkusSteps...)...)
+func (t *quarkusTrait) addBuildSteps(steps *[]builder.Step) {
+ *steps = append(*steps, runtime.QuarkusSteps...)
}
diff --git a/pkg/trait/quarkus_test.go b/pkg/trait/quarkus_test.go
index 9ee8ae9..9061f57 100644
--- a/pkg/trait/quarkus_test.go
+++ b/pkg/trait/quarkus_test.go
@@ -20,11 +20,11 @@ package trait
import (
"testing"
- v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+ "github.com/stretchr/testify/assert"
+ v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
"github.com/apache/camel-k/pkg/builder"
"github.com/apache/camel-k/pkg/util/camel"
- "github.com/stretchr/testify/assert"
)
func TestConfigureQuarkusTraitShouldSucceed(t *testing.T) {
@@ -57,13 +57,12 @@ func TestApplyQuarkusTraitDoesNothing(t *testing.T) {
func TestQuarkusTraitAddBuildStepsShouldSucceed(t *testing.T) {
quarkusTrait, _ := createNominalQuarkusTest()
- task := &v1.BuilderTask{
- Steps: builder.StepIDsFor(builder.DefaultSteps...),
- }
+ steps := make([]builder.Step, 0)
+ steps = append(steps, builder.DefaultSteps...)
- quarkusTrait.addBuildSteps(task)
+ quarkusTrait.addBuildSteps(&steps)
- assert.Len(t, task.Steps, 9)
+ assert.Len(t, steps, 9)
}
func createNominalQuarkusTest() (*quarkusTrait, *Environment) {