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 <[email protected]>
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)
+}

Reply via email to