Skip to content

Commit 44fc508

Browse files
committed
ensure we include the Dockerfile in the upload as it's required for the build
1 parent 2f57f07 commit 44fc508

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

pkg/agentfs/tar.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@ func UploadTarball(directory string, presignedUrl string, excludeFiles []string,
9797
}
9898

9999
checkFilesToInclude := func(path string, info os.FileInfo) bool {
100+
fileName := filepath.Base(path)
101+
// we have to include the Dockerfile in the upload, as it is required for the build
102+
if strings.Contains(fileName, "Dockerfile") {
103+
return true
104+
}
105+
100106
if ignored, err := matcher.MatchesOrParentMatches(path); ignored {
101107
return false
102108
} else if err != nil {

pkg/agentfs/tar_test.go

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,12 @@ func TestUploadTarballWithPipPythonProject(t *testing.T) {
410410

411411
err = os.WriteFile(filepath.Join(tmpDir, "setup.py"), []byte("from setuptools import setup\nsetup(name='myapp')"), 0644)
412412
require.NoError(t, err)
413+
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile"), []byte("Dockerfile content"), 0644)
414+
require.NoError(t, err)
415+
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile.prod"), []byte("Dockerfile prod content"), 0644)
416+
require.NoError(t, err)
417+
err = os.WriteFile(filepath.Join(tmpDir, "other-Dockerfile"), []byte("other Dockerfile content"), 0644)
418+
require.NoError(t, err)
413419

414420
excludedDirsCheck := []string{
415421
"__pycache__",
@@ -469,6 +475,9 @@ func TestUploadTarballWithPipPythonProject(t *testing.T) {
469475
"main.py": false,
470476
"requirements.txt": false,
471477
"setup.py": false,
478+
"Dockerfile": false,
479+
"Dockerfile.prod": false,
480+
"other-Dockerfile": false,
472481
}
473482

474483
for _, content := range contents {
@@ -537,6 +546,10 @@ func TestUploadTarballWithUvPythonProject(t *testing.T) {
537546
require.NoError(t, err)
538547
err = os.WriteFile(filepath.Join(tmpDir, "main.pyc"), []byte("compiled python"), 0644)
539548
require.NoError(t, err)
549+
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile"), []byte("Dockerfile content"), 0644)
550+
require.NoError(t, err)
551+
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile.dev"), []byte("Dockerfile dev content"), 0644)
552+
require.NoError(t, err)
540553

541554
var tarBuffer bytes.Buffer
542555
mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -555,6 +568,8 @@ func TestUploadTarballWithUvPythonProject(t *testing.T) {
555568
"main.py": false,
556569
"pyproject.toml": false,
557570
"utils.py": false,
571+
"Dockerfile": false,
572+
"Dockerfile.dev": false,
558573
}
559574

560575
for _, content := range contents {
@@ -613,6 +628,10 @@ func TestUploadTarballWithNodeProject(t *testing.T) {
613628

614629
err = os.WriteFile(filepath.Join(tmpDir, "utils.js"), []byte("function helper() {\n console.log('helper');\n}"), 0644)
615630
require.NoError(t, err)
631+
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile"), []byte("Dockerfile content"), 0644)
632+
require.NoError(t, err)
633+
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile.dev"), []byte("Dockerfile dev content"), 0644)
634+
require.NoError(t, err)
616635

617636
err = os.MkdirAll(filepath.Join(tmpDir, "some-dir"), 0755)
618637
require.NoError(t, err)
@@ -646,9 +665,11 @@ func TestUploadTarballWithNodeProject(t *testing.T) {
646665
contents := readTarContents(t, tarBuffer.Bytes())
647666

648667
expectedFiles := map[string]bool{
649-
"index.js": false,
650-
"package.json": false,
651-
"utils.js": false,
668+
"index.js": false,
669+
"package.json": false,
670+
"utils.js": false,
671+
"Dockerfile": false,
672+
"Dockerfile.dev": false,
652673
}
653674

654675
for _, content := range contents {

0 commit comments

Comments
 (0)