Fix issue causing the copyAndRename* task to fail on occasions on Windows machines

Gradle automatically handles up-to-date checks for output files and directories. This behavior sometimes causes the `copyAndRename*` task to fail on Windows machines when gradle tries to check on existing files in the output directories it doesn't have access to.
To fix the issue, we disable this gradle behavior following the instructions in https://docs.gradle.org/8.2/userguide/incremental_build.html#sec:disable-state-tracking
This commit is contained in:
Fredia Huya-Kouadio 2024-04-17 07:43:21 -07:00
parent 4b7776e31b
commit 1cc935fa6c

View file

@ -205,36 +205,66 @@ android {
} }
task copyAndRenameDebugApk(type: Copy) { task copyAndRenameDebugApk(type: Copy) {
// The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files
// and directories. Otherwise this check may cause permissions access failures on Windows
// machines.
doNotTrackState("No need for up-to-date checks for the copy-and-rename operation")
from "$buildDir/outputs/apk/debug/android_debug.apk" from "$buildDir/outputs/apk/debug/android_debug.apk"
into getExportPath() into getExportPath()
rename "android_debug.apk", getExportFilename() rename "android_debug.apk", getExportFilename()
} }
task copyAndRenameDevApk(type: Copy) { task copyAndRenameDevApk(type: Copy) {
// The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files
// and directories. Otherwise this check may cause permissions access failures on Windows
// machines.
doNotTrackState("No need for up-to-date checks for the copy-and-rename operation")
from "$buildDir/outputs/apk/dev/android_dev.apk" from "$buildDir/outputs/apk/dev/android_dev.apk"
into getExportPath() into getExportPath()
rename "android_dev.apk", getExportFilename() rename "android_dev.apk", getExportFilename()
} }
task copyAndRenameReleaseApk(type: Copy) { task copyAndRenameReleaseApk(type: Copy) {
// The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files
// and directories. Otherwise this check may cause permissions access failures on Windows
// machines.
doNotTrackState("No need for up-to-date checks for the copy-and-rename operation")
from "$buildDir/outputs/apk/release/android_release.apk" from "$buildDir/outputs/apk/release/android_release.apk"
into getExportPath() into getExportPath()
rename "android_release.apk", getExportFilename() rename "android_release.apk", getExportFilename()
} }
task copyAndRenameDebugAab(type: Copy) { task copyAndRenameDebugAab(type: Copy) {
// The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files
// and directories. Otherwise this check may cause permissions access failures on Windows
// machines.
doNotTrackState("No need for up-to-date checks for the copy-and-rename operation")
from "$buildDir/outputs/bundle/debug/build-debug.aab" from "$buildDir/outputs/bundle/debug/build-debug.aab"
into getExportPath() into getExportPath()
rename "build-debug.aab", getExportFilename() rename "build-debug.aab", getExportFilename()
} }
task copyAndRenameDevAab(type: Copy) { task copyAndRenameDevAab(type: Copy) {
// The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files
// and directories. Otherwise this check may cause permissions access failures on Windows
// machines.
doNotTrackState("No need for up-to-date checks for the copy-and-rename operation")
from "$buildDir/outputs/bundle/dev/build-dev.aab" from "$buildDir/outputs/bundle/dev/build-dev.aab"
into getExportPath() into getExportPath()
rename "build-dev.aab", getExportFilename() rename "build-dev.aab", getExportFilename()
} }
task copyAndRenameReleaseAab(type: Copy) { task copyAndRenameReleaseAab(type: Copy) {
// The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files
// and directories. Otherwise this check may cause permissions access failures on Windows
// machines.
doNotTrackState("No need for up-to-date checks for the copy-and-rename operation")
from "$buildDir/outputs/bundle/release/build-release.aab" from "$buildDir/outputs/bundle/release/build-release.aab"
into getExportPath() into getExportPath()
rename "build-release.aab", getExportFilename() rename "build-release.aab", getExportFilename()