packaging: only run deployment script when the client hash changes
Change-Id: I24a54bd832b910a524fb7be1e91c8d6387d6bcb9
diff --git a/.gitignore b/.gitignore
index 022e266..508b450 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,5 @@
*.vcxproj
*.vcxproj.filters
*qmlcache.qrc
+
+.deploy.stamp
diff --git a/copy-runtime-files.ps1 b/copy-runtime-files.ps1
index 150f292..09afa56 100644
--- a/copy-runtime-files.ps1
+++ b/copy-runtime-files.ps1
@@ -7,7 +7,18 @@
[string]$outDir
);
-write-host "Copying deployment files..." -ForegroundColor Green
+$clientDir = split-path -parent $MyInvocation.MyCommand.Definition
+$stamp = (git rev-parse HEAD).Substring(0, 8)
+$stampFile = $clientDir + "\.deploy.stamp"
+If (test-path $stampFile) {
+ if($stamp = (Get-Content -Path $stampFile)) {
+ write-host "deployment stamp up-to-date" $outDir -ForegroundColor Cyan
+ exit 0
+ }
+}
+
+if (!$outDir) { $outDir = $clientDir + "\x64\" + $mode }
+If (!(test-path $outDir)) { New-Item -ItemType directory -Path $outDir -Force }
# default values
$qtver = If ($qtver) { $qtver } Else { "5.15.0" }
@@ -18,15 +29,11 @@
$QtDir = "C:\Qt\$qtver\$qtMsvcDir"
-$clientDir = split-path -parent $MyInvocation.MyCommand.Definition
-
-if (!$outDir) { $outDir = $clientDir + "\x64\" + $mode }
-If (!(test-path $outDir)) { New-Item -ItemType directory -Path $outDir -Force }
-
if (!$daemonDir) { $daemonDir = $clientDir + '\..\daemon' }
if (!$lrcDir) { $lrcDir = $clientDir + '\..\lrc' }
write-host "********************************************************************************" -ForegroundColor Magenta
+write-host "copying deployment files..." -ForegroundColor Green
write-host "using daemonDir: " $daemonDir -ForegroundColor Magenta
write-host "using lrcDir: " $lrcDir -ForegroundColor Magenta
write-host "using QtDir: " $QtDir -ForegroundColor Magenta
@@ -99,4 +106,5 @@
Copy-Item -Path $_.FullName -Destination $CopyDir -Force –Recurse
}
+New-Item -Path $stampFile -ItemType "file" -Value $stamp -Force
write-host "copy completed" -NoNewline -ForegroundColor Green