Skip to content

Commit cdf3279

Browse files
committed
feat: update to engine-ci 0.24.2
1 parent b35f51e commit cdf3279

10 files changed

Lines changed: 88 additions & 39 deletions

go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ module github.com/containifyci/java
22

33
go 1.25.0
44

5+
// replace github.com/containifyci/engine-ci => ../engine-ci
6+
57
require (
6-
github.com/containifyci/engine-ci v0.23.0
8+
github.com/containifyci/engine-ci v0.24.2
79
github.com/stretchr/testify v1.11.1
810
)
911

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ github.com/containers/psgo v1.9.0 h1:eJ74jzSaCHnWt26OlKZROSyUyRcGDf+gYBdXnxrMW4g
7070
github.com/containers/psgo v1.9.0/go.mod h1:0YoluUm43Mz2UnBIh1P+6V6NWcbpTL5uRtXyOcH0B5A=
7171
github.com/containers/storage v1.58.0 h1:Q7SyyCCjqgT3wYNgRNIL8o/wUS92heIj2/cc8Sewvcc=
7272
github.com/containers/storage v1.58.0/go.mod h1:w7Jl6oG+OpeLGLzlLyOZPkmUso40kjpzgrHUk5tyBlo=
73-
github.com/containifyci/engine-ci v0.23.0 h1:buMLR+dOqct9vVYx4S35rkyT8iJuzqHJHjH7xO+2iog=
74-
github.com/containifyci/engine-ci v0.23.0/go.mod h1:SWRTTkF3IADlTwY0w20hCukdeJKOsuS8XmbmoWZE1kw=
73+
github.com/containifyci/engine-ci v0.24.2 h1:TTiPVgY0F2NR0OHq8xO9H45lhpkZQL2Da5M8Irt5x5k=
74+
github.com/containifyci/engine-ci v0.24.2/go.mod h1:SWRTTkF3IADlTwY0w20hCukdeJKOsuS8XmbmoWZE1kw=
7575
github.com/containifyci/engine-ci/protos2 v0.15.2 h1:CjUuYqXt0gAakiUCDWn5JaO+oTesFMeyGj0Vs7A24qc=
7676
github.com/containifyci/engine-ci/protos2 v0.15.2/go.mod h1:k7k6Zego6VwwYFYHM4LcBR34E6NDxY1OO8lgVQzMpQ0=
7777
github.com/containifyci/go-self-update v0.2.2 h1:qbactPBL9Ad90bS6v5dIjulNFwqxj/C+IK8ZdFxe9CM=

main.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ func main() {
2424
slog.Info("Version", "version", v)
2525

2626
arg := cmd.GetBuild()
27-
// // cmd.Init(arg)
27+
28+
bld := cmd.Init(arg[0].Builds[0])
2829

2930
bs := build.NewBuildSteps(
30-
append(maven.Steps(arg[0].Builds[0]),
31-
sonarcloud.New(*arg[0].Builds[0]),
32-
trivy.New(*arg[0].Builds[0]),
33-
github.New(*arg[0].Builds[0]))...,
31+
append(maven.Steps(bld),
32+
sonarcloud.New(*bld),
33+
trivy.New(*bld),
34+
github.New(*bld))...,
3435
)
35-
3636
cmd.InitBuildSteps(bs)
3737
err := cmd.Execute()
3838
if err != nil {

pkg/maven/Dockerfile.maven

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,18 @@ FROM eclipse-temurin:17-jdk-jammy
44
# iproute2 needed for the testcontainers to work within a container (DIND)
55
RUN apt update && \
66
apt -y upgrade && \
7-
apt -y install protobuf-compiler iproute2 && \
7+
apt -y install protobuf-compiler iproute2 curl tar && \
88
apt -y autoremove && \
99
apt -y clean && \
1010
rm -rf /var/lib/apt/lists/*
11+
12+
# Install Maven
13+
ARG MAVEN_VERSION=3.9.11
14+
15+
RUN curl -fsSL https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
16+
| tar -xz -C /opt \
17+
&& mv /opt/apache-maven-${MAVEN_VERSION} /opt/maven \
18+
&& ln -s /opt/maven/bin/mvn /usr/local/bin/mvn
19+
20+
ENV MAVEN_HOME=/opt/maven \
21+
MAVEN_CONFIG=/root/.m2

pkg/maven/Dockerfile.maven_17-jdk-jammy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,14 @@ RUN apt update && \
88
apt -y autoremove && \
99
apt -y clean && \
1010
rm -rf /var/lib/apt/lists/*
11+
12+
# Install Maven
13+
ARG MAVEN_VERSION=3.9.11
14+
15+
RUN curl -fsSL https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
16+
| tar -xz -C /opt \
17+
&& mv /opt/apache-maven-${MAVEN_VERSION} /opt/maven \
18+
&& ln -s /opt/maven/bin/mvn /usr/local/bin/mvn
19+
20+
ENV MAVEN_HOME=/opt/maven \
21+
MAVEN_CONFIG=/root/.m2

pkg/maven/Dockerfile.maven_21-jdk-jammy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,14 @@ RUN apt update && \
88
apt -y autoremove && \
99
apt -y clean && \
1010
rm -rf /var/lib/apt/lists/*
11+
12+
# Install Maven
13+
ARG MAVEN_VERSION=3.9.11
14+
15+
RUN curl -fsSL https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
16+
| tar -xz -C /opt \
17+
&& mv /opt/apache-maven-${MAVEN_VERSION} /opt/maven \
18+
&& ln -s /opt/maven/bin/mvn /usr/local/bin/mvn
19+
20+
ENV MAVEN_HOME=/opt/maven \
21+
MAVEN_CONFIG=/root/.m2

pkg/maven/buildscript.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ func Script(bs *BuildScript) string {
2424
func simpleScript(bs *BuildScript) string {
2525
return `#!/bin/sh
2626
set -xe
27-
./mvnw --batch-mode package
27+
mvn --batch-mode package
2828
`
2929
}
3030

3131
func verboseScript(bs *BuildScript) string {
3232
return `#!/bin/sh
3333
set -xe
34-
./mvnw --batch-mode package -X
34+
mvn --batch-mode package -X
3535
`
3636
}

pkg/maven/buildscript_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ func TestSimpleScript(t *testing.T) {
1010
bs := NewBuildScript(false, "localhost")
1111
script := Script(bs)
1212

13-
assert.Equal(t, "#!/bin/sh\nset -xe\n./mvnw --batch-mode package\n", script)
13+
assert.Equal(t, "#!/bin/sh\nset -xe\nmvn --batch-mode package\n", script)
1414
}
1515

1616
func TestVerboseScript(t *testing.T) {
1717
bs := NewBuildScript(true, "localhost")
1818
script := Script(bs)
1919

20-
assert.Equal(t, "#!/bin/sh\nset -xe\n./mvnw --batch-mode package -X\n", script)
20+
assert.Equal(t, "#!/bin/sh\nset -xe\nmvn --batch-mode package -X\n", script)
2121
}

pkg/maven/maven.go

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,41 @@ import (
2121
)
2222

2323
const (
24-
ProdImage = "registry.access.redhat.com/ubi8/openjdk-%s:latest"
24+
ProdImage = "tomcat:latest"
2525
CacheLocation = "/root/.m2/"
2626
)
2727

2828
//go:embed Dockerfile.*
2929
var f embed.FS
3030

3131
type MavenContainer struct {
32-
App string
33-
File string
34-
Folder string
35-
Image string
36-
ImageTag string
37-
Platform types.Platform
32+
App string
33+
File u.SrcFile
34+
Folder string
35+
Image string
36+
ImageTag string
37+
Platform types.Platform
38+
ProdImage string
3839

3940
Version string
4041
*container.Container
4142
}
4243

4344
func New(build *container.Build, version string) *MavenContainer {
45+
prodImage := build.Custom.String("image")
46+
if prodImage == "" {
47+
prodImage = ProdImage
48+
}
4449
return &MavenContainer{
4550
App: build.App,
4651
Container: container.New(*build),
4752
Image: build.Image,
4853
Folder: build.Folder,
54+
File: u.SrcFile(build.File),
4955
ImageTag: build.ImageTag,
5056
Platform: build.Platform,
5157
Version: version,
58+
ProdImage: prodImage,
5259
}
5360
}
5461

@@ -80,11 +87,14 @@ func CacheFolder() string {
8087
}
8188

8289
func (c *MavenContainer) Pull() error {
83-
return c.Container.Pull(fmt.Sprintf(ProdImage, c.Version))
90+
91+
// return c.Container.Pull(fmt.Sprintf(ProdImage, c.Version))
92+
return c.Container.Pull(c.ProdImage)
8493
}
8594

8695
func (c *MavenContainer) Images() []string {
87-
return []string{c.MavenImage(), fmt.Sprintf(ProdImage, c.Version)}
96+
// return []string{c.MavenImage(), fmt.Sprintf(ProdImage, c.Version)}
97+
return []string{c.MavenImage(), c.ProdImage}
8898
}
8999

90100
// TODO: provide a shorter checksum
@@ -254,15 +264,19 @@ func NewProd(arg *container.Build, version string) build.Build {
254264

255265
func (c *MavenContainer) Prod() error {
256266
opts := types.ContainerConfig{}
257-
opts.Image = fmt.Sprintf(ProdImage, c.Version)
258-
opts.Env = []string{
259-
"JAVA_OPTS=-javaagent:/deployments/dd-java-agent.jar -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager",
260-
"JAVA_APP_JAR=/deployments/quarkus-run.jar",
261-
}
267+
opts.Image = c.ProdImage
268+
// opts.Image = fmt.Sprintf(ProdImage, c.Version)
269+
// opts.Env = []string{
270+
// "JAVA_OPTS=-javaagent:/deployments/dd-java-agent.jar -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager",
271+
// "JAVA_APP_JAR=/deployments/quarkus-run.jar",
272+
// }
273+
// opts.Env = []string{
274+
// "JAVA_OPTS=-javaagent:/deployments/dd-java-agent.jar -Djava.util.logging.manager=org.jboss.logmanager.LogManager",
275+
// }
262276
opts.Platform = types.AutoPlatform
263277
opts.Cmd = []string{"sleep", "300"}
264-
opts.User = "185"
265-
opts.WorkingDir = "/src"
278+
// opts.User = "185"
279+
// opts.WorkingDir = "/src"
266280

267281
err := c.Create(opts)
268282
if err != nil {
@@ -276,19 +290,19 @@ func (c *MavenContainer) Prod() error {
276290
os.Exit(1)
277291
}
278292

279-
err = c.Exec("curl", "-Lo", "/deployments/dd-java-agent.jar", "https://dtdg.co/latest-java-tracer")
280-
if err != nil {
281-
slog.Error("Failed to execute command: %s", "error", err)
282-
os.Exit(1)
283-
}
293+
// err = c.Exec("curl", "-Lo", "/deployments/dd-java-agent.jar", "https://dtdg.co/latest-java-tracer")
294+
// if err != nil {
295+
// slog.Error("Failed to execute command: %s", "error", err)
296+
// os.Exit(1)
297+
// }
284298

285-
err = c.CopyDirectoryTo(c.Folder, "/deployments")
299+
err = c.CopyFileTo(c.File.Host(), "/usr/local/tomcat/webapps/jpetstore.war")
286300
if err != nil {
287-
slog.Error("Failed to copy directory to container: %s", "error", err)
301+
slog.Error("Failed to copy file to container", "error", err, "file", c.File)
288302
os.Exit(1)
289303
}
290304

291-
imageId, err := c.Commit(fmt.Sprintf("%s:%s", c.Image, c.ImageTag), "Created from container", "CMD [\"/usr/local/s2i/run\"]", "USER 185")
305+
imageId, err := c.Commit(fmt.Sprintf("%s:%s", c.Image, c.ImageTag), "Created from container", "CMD [\"catalina.sh\", \"run\"]")
292306
if err != nil {
293307
slog.Error("Failed to commit container: %s", "error", err)
294308
os.Exit(1)

pkg/maven/maven_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func TestBuildDarwinPodman(t *testing.T) {
136136

137137
assert.Equal(t, "started", v.GetContainerByImage(img).State)
138138
assert.Equal(t, []string{"sh", "/tmp/script.sh"}, v.GetContainerByImage(img).Opts.Cmd)
139-
assert.Equal(t, "#!/bin/sh\nset -xe\n./mvnw --batch-mode package\n", v.GetContainerByImage(img).Opts.Script)
139+
assert.Equal(t, "#!/bin/sh\nset -xe\nmvn --batch-mode package\n", v.GetContainerByImage(img).Opts.Script)
140140
assert.Equal(t, "/src", v.GetContainerByImage(img).Opts.WorkingDir)
141141
assert.Equal(t, "containifyci/maven-3-eclipse-temurin-17-alpine:214f702cd3dee211717ca17936aca88df6913e1db40f822ef9918e4369ea927d", v.GetContainerByImage(img).Opts.Image)
142142
assert.Equal(t, int64(4073741824), v.GetContainerByImage(img).Opts.Memory)

0 commit comments

Comments
 (0)