You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2024/05/31 11:34:10 UTC

(camel-k) branch main updated: chore(builder): Jib disableUpdateChecks = true

This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/main by this push:
     new 908456dc1 chore(builder): Jib disableUpdateChecks = true
908456dc1 is described below

commit 908456dc1b235c3a5b68b7d82cdfc03240679961
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Fri May 31 10:16:47 2024 +0200

    chore(builder): Jib disableUpdateChecks = true
    
    Closes #5481
---
 pkg/builder/jib.go      | 53 ++++++++++++++++++++++++------------------
 pkg/builder/jib_test.go | 62 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+), 23 deletions(-)

diff --git a/pkg/builder/jib.go b/pkg/builder/jib.go
index 04fb67181..bc587785b 100644
--- a/pkg/builder/jib.go
+++ b/pkg/builder/jib.go
@@ -87,33 +87,11 @@ func (t *jibTask) Do(ctx context.Context) v1.BuildStatus {
 		}
 	}
 
-	// TODO refactor maven code to avoid creating a file to pass command args
-	mavenCommand, err := util.ReadFile(filepath.Join(mavenDir, "MAVEN_CONTEXT"))
+	mavenArgs, err := buildJibMavenArgs(mavenDir, t.task.Image, status.BaseImage, t.task.Registry.Insecure, t.task.Configuration.ImagePlatforms)
 	if err != nil {
 		return status.Failed(err)
 	}
 
-	mavenArgs := make([]string, 0)
-	mavenArgs = append(mavenArgs, jib.JibMavenGoal)
-	mavenArgs = append(mavenArgs, strings.Split(string(mavenCommand), " ")...)
-	mavenArgs = append(mavenArgs, "-P", "jib")
-	mavenArgs = append(mavenArgs, jib.JibMavenToImageParam+t.task.Image)
-	mavenArgs = append(mavenArgs, jib.JibMavenFromImageParam+status.BaseImage)
-	mavenArgs = append(mavenArgs, jib.JibMavenBaseImageCache+mavenDir+"/jib")
-
-	// Build the integration for the arch configured in the IntegrationPlatform.
-	// This can explicitly be configured with the `-t builder.platforms` trait.
-	// Building the integration for multiarch is deferred until the next major version (e.g. 3.x)
-
-	if t.task.Configuration.ImagePlatforms != nil {
-		platforms := strings.Join(t.task.Configuration.ImagePlatforms, ",")
-		mavenArgs = append(mavenArgs, jib.JibMavenFromPlatforms+platforms)
-	}
-
-	if t.task.Registry.Insecure {
-		mavenArgs = append(mavenArgs, jib.JibMavenInsecureRegistries+"true")
-	}
-
 	mvnCmd := "./mvnw"
 	if c, ok := os.LookupEnv("MAVEN_CMD"); ok {
 		mvnCmd = c
@@ -161,3 +139,32 @@ func cleanRegistryConfig(registryConfigDir string) error {
 	}
 	return nil
 }
+
+// buildJibMavenArgs build the jib execution expected parameters.
+func buildJibMavenArgs(mavenDir, image, baseImage string, insecureRegistry bool, imagePlatforms []string) ([]string, error) {
+	// TODO refactor maven code to avoid creating a file to pass command args
+	mavenCommand, err := util.ReadFile(filepath.Join(mavenDir, "MAVEN_CONTEXT"))
+	if err != nil {
+		return nil, err
+	}
+
+	mavenArgs := make([]string, 0)
+	mavenArgs = append(mavenArgs, jib.JibMavenGoal)
+	mavenArgs = append(mavenArgs, "-Djib.disableUpdateChecks=true")
+	mavenArgs = append(mavenArgs, strings.Split(string(mavenCommand), " ")...)
+	mavenArgs = append(mavenArgs, "-P", "jib")
+	mavenArgs = append(mavenArgs, jib.JibMavenToImageParam+image)
+	mavenArgs = append(mavenArgs, jib.JibMavenFromImageParam+baseImage)
+	mavenArgs = append(mavenArgs, jib.JibMavenBaseImageCache+mavenDir+"/jib")
+
+	if imagePlatforms != nil {
+		platforms := strings.Join(imagePlatforms, ",")
+		mavenArgs = append(mavenArgs, jib.JibMavenFromPlatforms+platforms)
+	}
+
+	if insecureRegistry {
+		mavenArgs = append(mavenArgs, jib.JibMavenInsecureRegistries+"true")
+	}
+
+	return mavenArgs, nil
+}
diff --git a/pkg/builder/jib_test.go b/pkg/builder/jib_test.go
new file mode 100644
index 000000000..d2b87a569
--- /dev/null
+++ b/pkg/builder/jib_test.go
@@ -0,0 +1,62 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package builder
+
+import (
+	"fmt"
+	"os"
+	"strings"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+)
+
+func TestJibBuildMavenMissingContext(t *testing.T) {
+	args, err := buildJibMavenArgs("missing-dir", "my-image", "my-base-image", true, nil)
+	require.Error(t, err)
+	assert.Nil(t, args)
+	assert.Contains(t, err.Error(), "no such file or directory")
+}
+
+func TestJibBuildMavenArgs(t *testing.T) {
+	tmpMvnCtxDir, err := os.MkdirTemp("", "my-build-test")
+	require.NoError(t, err)
+	require.NoError(t, os.WriteFile(tmpMvnCtxDir+"/MAVEN_CONTEXT", []byte(`-x some-maven-option`), 0o400))
+	args, err := buildJibMavenArgs(tmpMvnCtxDir, "my-image", "my-base-image", true, nil)
+	require.NoError(t, err)
+	expectedParams := strings.Split(
+		fmt.Sprintf("jib:build -Djib.disableUpdateChecks=true -x some-maven-option -P jib -Djib.to.image=my-image "+
+			"-Djib.from.image=my-base-image -Djib.baseImageCache=%s -Djib.allowInsecureRegistries=true", tmpMvnCtxDir+"/jib"),
+		" ")
+	assert.Equal(t, expectedParams, args)
+}
+
+func TestJibBuildMavenArgsWithPlatforms(t *testing.T) {
+	tmpMvnCtxDir, err := os.MkdirTemp("", "my-build-test")
+	require.NoError(t, err)
+	require.NoError(t, os.WriteFile(tmpMvnCtxDir+"/MAVEN_CONTEXT", []byte(`-x some-maven-option`), 0o400))
+	args, err := buildJibMavenArgs(tmpMvnCtxDir, "my-image", "my-base-image", true, []string{"amd64", "arm64"})
+	require.NoError(t, err)
+	expectedParams := strings.Split(
+		fmt.Sprintf("jib:build -Djib.disableUpdateChecks=true -x some-maven-option -P jib -Djib.to.image=my-image "+
+			"-Djib.from.image=my-base-image -Djib.baseImageCache=%s -Djib.from.platforms=amd64,arm64 -Djib.allowInsecureRegistries=true",
+			tmpMvnCtxDir+"/jib"),
+		" ")
+	assert.Equal(t, expectedParams, args)
+}