You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

21 lines
1.8 KiB

$ErrorActionPreference = 'Stop'
$taskRoot = (Resolve-Path (Join-Path $PSScriptRoot '..')).Path
$taskBuild = Join-Path $taskRoot 'app/build/workspace-verification'
$taskJava = 'C:/Program Files/Android/Android Studio/jbr/bin/java.exe'
$taskKotlin = 'C:/Program Files/Android/Android Studio/plugins/Kotlin/kotlinc/lib'
$taskArgs = @(Get-Content (Join-Path $taskBuild 'test-current.args') | Where-Object { $_ -notmatch '^".*\.(kt|java)"$' } | ForEach-Object { $_.Trim('"') })
$taskJars = @(Get-ChildItem 'C:/Users/COMPUTER1/.gradle/caches' -Filter 'classes.jar' -Recurse | Where-Object {
$_.FullName -match 'transformed[\\/](ui-test-release|ui-test-junit4-release|monitor-1.6.1|espresso-core-3.5.1|runner-1.5.2)[\\/]'
} | Group-Object { $_.Directory.Parent.Name } | ForEach-Object { $_.Group[0].FullName.Replace('\', '/') })
$taskClasspathIndex = [Array]::IndexOf($taskArgs, '-classpath') + 1
if ($taskClasspathIndex -le 0 -or $taskJars.Count -lt 5) { throw 'UI test compiler dependencies unavailable' }
$taskArgs[$taskClasspathIndex] += ';' + ($taskJars -join ';')
$taskOutputIndex = [Array]::IndexOf($taskArgs, '-d') + 1
if ($taskOutputIndex -le 0) { throw 'Missing Kotlin output argument' }
$taskArgs[$taskOutputIndex] = (Join-Path $taskBuild 'androidTest-ui').Replace('\', '/')
$taskArgs += '-Xplugin=' + $taskKotlin + '/compose-compiler-plugin.jar'
$taskArgs += @(Get-ChildItem (Join-Path $taskRoot 'app/src/androidTest/java') -Filter '*.kt' -Recurse | ForEach-Object { $_.FullName.Replace('\', '/') })
$taskArgsFile = Join-Path $taskBuild 'ui-current.args'
[System.IO.File]::WriteAllLines($taskArgsFile, @($taskArgs | ForEach-Object { '"' + $_ + '"' }))
& $taskJava '-cp' ($taskKotlin + '/*') 'org.jetbrains.kotlin.cli.jvm.K2JVMCompiler' ('@' + $taskArgsFile) 2>&1 | Tee-Object (Join-Path $taskBuild 'ui-current.log')
exit $LASTEXITCODE