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)
+}