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
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
|
|
|