cashapp / zipline

Run Kotlin/JS libraries in Kotlin/JVM and Kotlin/Native programs
Apache License 2.0
1.98k stars 151 forks source link

Use output directories like build/zipline/Production #1355

Closed swankjesse closed 2 weeks ago

swankjesse commented 2 weeks ago

Previously we derived our output directory from the output directory of the previous step's output. That was less likely to have collisions but also caused some Gradle grief.

Closes: https://github.com/cashapp/zipline/issues/1354

swankjesse commented 2 weeks ago

Build flake?

> Task :zipline-loader:macosX64Test
    at 14  test.kexe                           0x104c1ec40        kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 80 (/Users/teamcity/.gradle/daemon/8.4/[K][Suspend]Functions:1:1)
    at 15  test.kexe                           0x104e76f66        kfun:app.cash.sqldelight.driver.native.ConnectionWrapper.accessStatement$lambda$0#internal + 870 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/NativeSqlDatabase.kt:42:9)
    at 16  test.kexe                           0x104e7724a        kfun:app.cash.sqldelight.driver.native.ConnectionWrapper.$accessStatement$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 122 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/NativeSqlDatabase.kt:35:12)
    at 17  test.kexe                           0x104c1ec40        kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 80 (/Users/teamcity/.gradle/daemon/8.4/[K][Suspend]Functions:1:1)
    at 18  test.kexe                           0x104e7d9d8        kfun:app.cash.sqldelight.driver.native.Pool#access(kotlin.Function1<1:0,0:0>){0§<kotlin.Any?>}0:0 + 424 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/Pool.kt:65:7)
    at 19  test.kexe                           0x104e79203        kfun:app.cash.sqldelight.driver.native.NativeSqliteDriver#accessConnection(kotlin.Boolean;kotlin.Function1<app.cash.sqldelight.driver.native.ThreadConnection,0:0>){0§<kotlin.Any?>}0:0 + 803 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/NativeSqlDatabase.kt:248:25)
    at 20  test.kexe                           0x104e803d7        kfun:app.cash.sqldelight.driver.native.ConnectionWrapper#accessConnection(kotlin.Boolean;kotlin.Function1<app.cash.sqldelight.driver.native.ThreadConnection,0:0>){0§<kotlin.Any?>}0:0-trampoline + 71 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/NativeSqlDatabase.kt:23:21)
    at 21  test.kexe                           0x104e76773        kfun:app.cash.sqldelight.driver.native.ConnectionWrapper.accessStatement#internal + 499 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/NativeSqlDatabase.kt:35:12)
    at 22  test.kexe                           0x104e76924        kfun:app.cash.sqldelight.driver.native.ConnectionWrapper#execute(kotlin.Int?;kotlin.String;kotlin.Int;kotlin.Function1<app.cash.sqldelight.db.SqlPreparedStatement,kotlin.Unit>?){}app.cash.sqldelight.db.QueryResult<kotlin.Long> + 340 (/Users/runner/work/sqldelight/sqldelight/drivers/native-driver/src/nativeMain/kotlin/app/cash/sqldelight/driver/native/NativeSqlDatabase.kt:56:5)
    at 23  test.kexe                           0x104e42ae7        kfun:app.cash.sqldelight.db.SqlDriver#execute(kotlin.Int?;kotlin.String;kotlin.Int;kotlin.Function1<app.cash.sqldelight.db.SqlPreparedStatement,kotlin.Unit>?){}app.cash.sqldelight.db.QueryResult<kotlin.Long>-trampoline + 103 (/Users/runner/work/sqldelight/sqldelight/runtime/src/commonMain/kotlin/app/cash/sqldelight/db/SqlDriver.kt:63:3)
    at 24  test.kexe                           0x104826b13        kfun:app.cash.zipline.loader.internal.cache.FilesQueries#insert(kotlin.String;kotlin.String?;app.cash.zipline.loader.internal.cache.FileState;kotlin.Long;kotlin.Long;kotlin.Long?){} + 643 (/Users/runner/work/zipline/zipline/zipline-loader/build/generated/sqldelight/code/Database/commonMain/app/cash/zipline/loader/internal/cache/FilesQueries.kt:278:12)
    at 25  test.kexe                           0x1048faaa4        kfun:app.cash.zipline.loader.internal.cache.DatabaseCommonTest#insertCollisionThrowsSQLiteException(){} + 1188 (/Users/runner/work/zipline/zipline/zipline-loader/src/commonTest/kotlin/app/cash/zipline/loader/internal/cache/DatabaseCommonTest.kt:71:29)
    at 26  test.kexe                           0x1048fb0a7        kfun:app.cash.zipline.loader.internal.cache.$DatabaseCommonTest$test$0.$insertCollisionThrowsSQLiteException$FUNCTION_REFERENCE$2.invoke#internal + 71 (/Users/runner/work/zipline/zipline/zipline-loader/src/commonTest/kotlin/app/cash/zipline/loader/internal/cache/DatabaseCommonTest.kt:54:3)
    at 27  test.kexe                           0x1048fb10d        kfun:app.cash.zipline.loader.internal.cache.$DatabaseCommonTest$test$0.$insertCollisionThrowsSQLiteException$FUNCTION_REFERENCE$2.$<bridge-UNNN>invoke(-1:0){}#internal + 93 (/Users/runner/work/zipline/zipline/zipline-loader/src/commonTest/kotlin/app/cash/zipline/loader/internal/cache/DatabaseCommonTest.kt:54:3)
    at 28  test.kexe                           0x104c1ec40        kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 80 (/Users/teamcity/.gradle/daemon/8.4/[K][Suspend]Functions:1:1)
    at 29  test.kexe                           0x104b2cfdf        kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#doRun(){} + 223 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestSuite.kt:177:22)
    at 30  test.kexe                           0x104c26ba1        kfun:kotlin.native.internal.test.TestCase#doRun(){}-trampoline + 65 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestSuite.kt:44:12)
    at 31  test.kexe                           0x104b2ad2a        kfun:kotlin.native.internal.test.TestCase#run(){} + 170 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestSuite.kt:52:13)
    at 32  test.kexe                           0x104c26951        kfun:kotlin.native.internal.test.TestCase#run(){}-trampoline + 65 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestSuite.kt:49:12)
    at 33  test.kexe                           0x104b27a06        kfun:kotlin.native.internal.test.TestRunner.run#internal + 3862 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestRunner.kt:263:30)
    at 34  test.kexe                           0x104b28bff        kfun:kotlin.native.internal.test.TestRunner.runIteration#internal + 3167 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestRunner.kt:289:49)
    at 35  test.kexe                           0x104b29582        kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int + 1298 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/TestRunner.kt:304:17)
    at 36  test.kexe                           0x104b1c3c2        kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int + 258 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/Launcher.kt:33:53)
    at 37  test.kexe                           0x104b1c457        kfun:kotlin.native.internal.test#main(kotlin.Array<kotlin.String>){} + 71 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/test/Launcher.kt:38:20)
    at 38  test.kexe                           0x104928b93        Konan_start + 147 (/Users/runner/.gradle/daemon/8.8/entryPointOwner:1:1)
    at 39  test.kexe                           0x104933b9d        Init_and_run_start + 93 
    at 40  dyld                                0x7ff8134cf365     start + 1941 
co.touchlab.sqliter.interop.SQLiteExceptionErrorCode: Sqlite operation failure UNIQUE constraint failed: files.sha256_hex
    at 0   test.kexe                           0x104ae99f9        kfun:kotlin.Throwable#<init>(kotlin.String?){} + 105 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/Throwable.kt:28:44)
    at 1   test.kexe                           0x104ae42c5        kfun:kotlin.Exception#<init>(kotlin.String?){} + 101 (/opt/buildAgent/work/b2e1db4d8d903ca4/kotlin/kotlin-native/runtime/src/main/kotlin/kotlin/Exceptions.kt:23:51)
    at 2   test.kexe                           0x104e5b170        kfun:co.touchlab.sqliter.interop.SQLiteException#<init>(kotlin.String;co.touchlab.sqliter.interop.SqliteDatabaseConfig){} + 112 (/Users/runner/work/SQLiter/SQLiter/sqliter-driver/src/nativeCommonMain/kotlin/co/touchlab/sqliter/interop/SQLiteException.kt:3:110)