Skip to content

Commit 6358d01

Browse files
committed
Add support for build compression
Signed-off-by: Paolo Di Tommaso <[email protected]>
1 parent 85b31da commit 6358d01

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ repositories {
2121
}
2222

2323
dependencies {
24-
implementation 'io.seqera:wave-api:0.14.0'
25-
implementation 'io.seqera:wave-utils:0.15.0'
24+
implementation 'io.seqera:wave-api:0.16.0'
25+
implementation 'io.seqera:wave-utils:0.15.1'
2626
implementation 'info.picocli:picocli:4.6.1'
2727
implementation 'com.squareup.moshi:moshi:1.15.2'
2828
implementation 'com.squareup.moshi:moshi-adapters:1.15.2'

app/src/main/java/io/seqera/wave/cli/App.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ public class App implements Runnable {
197197
@Option(names = {"--scan-level"}, paramLabel = "false", description = "Specify one or more security scan vulnerabilities level allowed in the container e.g. low,medium,high,critical")
198198
private List<ScanLevel> scanLevels;
199199

200+
@Option(names = {"--build-compression"}, paramLabel = "false", description = "Specify the compression algorithm to be used for the build context, it can be 'gzip', 'zstd' or 'estargz'")
201+
private BuildCompression.Mode buildCompression;
202+
203+
200204
@CommandLine.Parameters
201205
List<String> prompt;
202206

@@ -413,9 +417,16 @@ protected SubmitContainerTokenRequest createRequest() {
413417
.withMirror(mirror)
414418
.withScanMode(scanMode)
415419
.withScanLevels(scanLevels)
420+
.withBuildCompression(compression(buildCompression))
416421
;
417422
}
418423

424+
BuildCompression compression(BuildCompression.Mode mode) {
425+
if( mode==null )
426+
return null;
427+
return new BuildCompression().withMode(mode);
428+
}
429+
419430
public void inspect() {
420431
final Client client = client();
421432
final ContainerInspectRequest req = new ContainerInspectRequest()

app/src/test/groovy/io/seqera/wave/cli/AppTest.groovy

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import java.nio.file.Files
2121
import java.time.Duration
2222
import java.time.Instant
2323

24+
import io.seqera.wave.api.BuildCompression
2425
import io.seqera.wave.api.ContainerStatus
2526
import io.seqera.wave.api.ContainerStatusResponse
2627
import io.seqera.wave.api.ImageNameStrategy
@@ -308,6 +309,32 @@ class AppTest extends Specification {
308309
req.scanLevels == List.of(ScanLevel.LOW, ScanLevel.MEDIUM)
309310
}
310311

312+
def 'should set build compression gzip' () {
313+
given:
314+
def app = new App()
315+
String[] args = ["--build-compression", 'gzip']
316+
317+
when:
318+
new CommandLine(app).parseArgs(args)
319+
and:
320+
def req = app.createRequest()
321+
then:
322+
req.buildCompression == new BuildCompression().withMode(BuildCompression.Mode.gzip)
323+
}
324+
325+
def 'should set build compression estargz' () {
326+
given:
327+
def app = new App()
328+
String[] args = ["--build-compression", 'estargz']
329+
330+
when:
331+
new CommandLine(app).parseArgs(args)
332+
and:
333+
def req = app.createRequest()
334+
then:
335+
req.buildCompression == new BuildCompression().withMode(BuildCompression.Mode.estargz)
336+
}
337+
311338
def 'should not allow dry-run and await' () {
312339
given:
313340
def app = new App()

0 commit comments

Comments
 (0)