@@ -24,7 +24,7 @@ var _ = Describe("PackagesStage", func() {
2424 )
2525
2626 It ("returns stage when packages commands present" , func (ctx context.Context ) {
27- stage := generateTestPackagesStage (ctx , "cd /app && go mod download" )
27+ stage := generateTestPackagesStage (ctx , "cd \" /app\" && go mod download" )
2828 Expect (stage ).NotTo (BeNil ())
2929 })
3030 })
@@ -42,7 +42,7 @@ var _ = Describe("PackagesStage", func() {
4242 )
4343
4444 It ("Name returns packages" , func (ctx context.Context ) {
45- stage := generateTestPackagesStage (ctx , "cd /app && go mod download" )
45+ stage := generateTestPackagesStage (ctx , "cd \" /app\" && go mod download" )
4646 Expect (stage .Name ()).To (Equal (Packages ))
4747 })
4848
@@ -67,21 +67,21 @@ var _ = Describe("PackagesStage", func() {
6767 },
6868
6969 Entry ("same commands produce same hash" ,
70- []string {"cd /app && go mod download" },
71- []string {"cd /app && go mod download" },
70+ []string {"cd \" /app\" && go mod download" },
71+ []string {"cd \" /app\" && go mod download" },
7272 true ),
7373 Entry ("different commands produce different hash" ,
74- []string {"cd /app && go mod download" },
75- []string {"cd /lib && go mod download" },
74+ []string {"cd \" /app\" && go mod download" },
75+ []string {"cd \" /lib\" && go mod download" },
7676 false ),
7777 Entry ("different number of commands produce different hash" ,
78- []string {"cd /app && go mod download" },
79- []string {"cd /app && go mod download" , "cd /lib && go mod download" },
78+ []string {"cd \" /app\" && go mod download" },
79+ []string {"cd \" /app\" && go mod download" , "cd \" /lib\" && go mod download" },
8080 false ),
8181 )
8282
8383 It ("returns non-empty hash" , func (ctx context.Context ) {
84- s := generateTestPackagesStage (ctx , "cd /app && go mod download" )
84+ s := generateTestPackagesStage (ctx , "cd \" /app\" && go mod download" )
8585 digest , err := s .GetDependencies (ctx , testConveyor (), nil , nil , nil , nil )
8686 Expect (err ).NotTo (HaveOccurred ())
8787 Expect (digest ).NotTo (BeEmpty ())
@@ -92,7 +92,7 @@ var _ = Describe("PackagesStage", func() {
9292 It ("does not affect install stage creation" , func (ctx context.Context ) {
9393 imageBaseConfig := & config.StapelImageBase {
9494 Shell : & config.Shell {
95- Packages : []string {"cd /app && go mod download" },
95+ Packages : []string {"cd \" /app\" && go mod download" },
9696 Install : []string {"go build ./..." },
9797 },
9898 }
@@ -158,20 +158,20 @@ var _ = Describe("GeneratePackagesCommands", func() {
158158
159159 Entry ("go-mod /app" , []* config.PackagesDirective {
160160 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/app" }},
161- }, []string {"cd /app && go mod download" }),
161+ }, []string {"cd \" /app\" && go mod download" }),
162162
163163 Entry ("go-mod /src/backend" , []* config.PackagesDirective {
164164 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/src/backend" }},
165- }, []string {"cd /src/backend && go mod download" }),
165+ }, []string {"cd \" /src/backend\" && go mod download" }),
166166
167167 Entry ("multiple go-mod entries" , []* config.PackagesDirective {
168168 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/app" }},
169169 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/lib" }},
170- }, []string {"cd /app && go mod download" , "cd /lib && go mod download" }),
170+ }, []string {"cd \" /app\" && go mod download" , "cd \" /lib\" && go mod download" }),
171171
172172 Entry ("root workdir" , []* config.PackagesDirective {
173173 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/" }},
174- }, []string {"cd / && go mod download" }),
174+ }, []string {"cd \" / \" && go mod download" }),
175175
176176 Entry ("unsupported type" , []* config.PackagesDirective {
177177 {Type : config .PackagesDirectiveType ("unknown" )},
@@ -191,28 +191,28 @@ var _ = Describe("GeneratePackagesCommands", func() {
191191 {Type : config .PackagesDirectiveTypeOSPM , Spec : config.PackagesSpec {Packages : []string {"curl" }}},
192192 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/app" }},
193193 {Type : config .PackagesDirectiveType ("cargo" )},
194- }, []string {"pm install curl" , "cd /app && go mod download" }),
194+ }, []string {"pm install curl" , "cd \" /app\" && go mod download" }),
195195
196196 Entry ("python-pip /app requirements.txt" , []* config.PackagesDirective {
197197 {
198198 Type : config .PackagesDirectiveTypePythonPip ,
199199 FileBased : config.FileBasedSpec {Workdir : "/app" , Spec : "requirements.txt" },
200200 },
201- }, []string {"cd /app && pip install -r requirements.txt" }),
201+ }, []string {"cd \" /app\" && pip install --no-cache-dir -r \" requirements.txt\" " }),
202202
203203 Entry ("python-poetry /svc" , []* config.PackagesDirective {
204204 {
205205 Type : config .PackagesDirectiveTypePythonPoetry ,
206206 FileBased : config.FileBasedSpec {Workdir : "/svc" },
207207 },
208- }, []string {"cd /svc && poetry install --no-root" }),
208+ }, []string {"cd \" /svc\" && poetry install --no-root" }),
209209
210210 Entry ("python-uv /api" , []* config.PackagesDirective {
211211 {
212212 Type : config .PackagesDirectiveTypePythonUV ,
213213 FileBased : config.FileBasedSpec {Workdir : "/api" },
214214 },
215- }, []string {"cd /api && uv sync --frozen" }),
215+ }, []string {"cd \" /api\" && uv sync --frozen" }),
216216
217217 Entry ("mixed: go-mod + python-uv + os-pm all produce commands" , []* config.PackagesDirective {
218218 {Type : config .PackagesDirectiveTypeGoMod , FileBased : config.FileBasedSpec {Workdir : "/app" }},
@@ -221,7 +221,7 @@ var _ = Describe("GeneratePackagesCommands", func() {
221221 FileBased : config.FileBasedSpec {Workdir : "/lib" },
222222 },
223223 {Type : config .PackagesDirectiveTypeOSPM , Spec : config.PackagesSpec {Packages : []string {"curl" }}},
224- }, []string {"cd /app && go mod download" , "cd /lib && uv sync --frozen" , "pm install curl" }),
224+ }, []string {"cd \" /app\" && go mod download" , "cd \" /lib\" && uv sync --frozen" , "pm install curl" }),
225225 )
226226})
227227
@@ -258,7 +258,7 @@ var _ = Describe("Shell.Packages config field", func() {
258258 }
259259 },
260260
261- Entry ("populated" , & config.Shell {Packages : []string {"cd /app && go mod download" }}, 1 , "cd /app && go mod download" ),
261+ Entry ("populated" , & config.Shell {Packages : []string {"cd \" /app\" && go mod download" }}, 1 , "cd \" /app\" && go mod download" ),
262262 Entry ("empty" , & config.Shell {}, 0 , "" ),
263263 )
264264
@@ -290,12 +290,12 @@ var _ = Describe("Builder interface Packages methods", func() {
290290 },
291291
292292 Entry ("same commands — same checksum" ,
293- []string {"cd /app && go mod download" },
294- []string {"cd /app && go mod download" },
293+ []string {"cd \" /app\" && go mod download" },
294+ []string {"cd \" /app\" && go mod download" },
295295 true ),
296296 Entry ("different commands — different checksum" ,
297- []string {"cd /app && go mod download" },
298- []string {"cd /lib && go mod download" },
297+ []string {"cd \" /app\" && go mod download" },
298+ []string {"cd \" /lib\" && go mod download" },
299299 false ),
300300 )
301301
0 commit comments