diff --git a/.circleci/config.yml b/.circleci/config.yml index 050d707f84..05e01076e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -388,6 +388,9 @@ jobs: - run: name: Override build ID command: $env:CIRCLE_BUILD_NUM = "$env:CIRCLE_BUILD_NUM-win" + - run: + name: Build demo-project + command: .\garden-service\dist\windows-amd64\garden.exe build --root .\examples\demo-project\ --logger-type basic --env testing - run: name: Deploy demo-project command: .\garden-service\dist\windows-amd64\garden.exe deploy --root .\examples\demo-project\ --logger-type basic --env testing diff --git a/garden-service/src/build-dir.ts b/garden-service/src/build-dir.ts index 14409ec6d9..123e18c389 100644 --- a/garden-service/src/build-dir.ts +++ b/garden-service/src/build-dir.ts @@ -161,6 +161,13 @@ export class BuildDir { // --exclude is required for modules where the module and project are in the same directory const syncOpts = ["-rptgo", `--exclude=${this.buildDirPath}`, "--ignore-missing-args"] + // We have noticed occasional issues with the default rsync behavior of creating temp files when copying + // when using Windows/cwRsync. This workaround appears to do the trick, but is less optimal so we don't apply + // it for other platforms. + if (process.platform === "win32") { + syncOpts.push("--inplace") + } + let logMsg = `Syncing ${module.version.files.length} files from ` + `${relative(this.projectRoot, sourcePath)} to ${relative(this.projectRoot, destinationPath)}`