Repository: JetBrains/compose-multiplatform
File: compose/integrations/composable-test-cases/build.gradle.kts (Kotlin)

Code before:
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl

//group "com.example"
//version "1.0-SNAPSHOT"

fun Project.disableYarnLockMismatchReport() {
    plugins.withType<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin> {
        the<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension>().apply {
            yarnLockMismatchReport = org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockMismatchReport.NONE
        }
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
        maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") // to test with kotlin dev builds

        maven("https://packages.jetbrains.team/maven/p/kt/dev")
        maven("https://redirector.kotlinlang.org/maven/dev")
        if (System.getenv("TEAMCITY_VERSION") != null) {
            mavenLocal()
        }
    }

    disableYarnLockMismatchReport()
}

plugins {
    kotlin("multiplatform").version(libs.versions.kotlin).apply(false)
    alias(libs.plugins.compose.compiler).apply(false)
}

subprojects {
    apply(plugin = "org.jetbrains.kotlin.multiplatform")

    configure<org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension> {
        jvm("desktop")
        applyDefaultHierarchyTemplate()
        js(IR) {
//                browser()
            nodejs() // Commented to save a bit of CI time. Testing in a browser should be enough.
        }
        @OptIn(ExperimentalWasmDsl::class)
        wasmJs {
            d8 {}

Review comment (suggestion):
Instead of `TEAMCITY_VERSION` it is better to use a custom Gradle property `project.property("use.maven.local") == "true"` and pass it from CI.

This way we don't bound the code to TeamCity (and can run in GitHub actions if needed)

Code after:
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl

//group "com.example"
//version "1.0-SNAPSHOT"

fun Project.disableYarnLockMismatchReport() {
    plugins.withType<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin> {
        the<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension>().apply {
            yarnLockMismatchReport = org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockMismatchReport.NONE
        }
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
        maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") // to test with kotlin dev builds

        maven("https://packages.jetbrains.team/maven/p/kt/dev")
        maven("https://redirector.kotlinlang.org/maven/dev")
        maven {
            url = uri("${rootDir}/build/maven-project")
        }
    }

    disableYarnLockMismatchReport()
}

plugins {
    kotlin("multiplatform").version(libs.versions.kotlin).apply(false)
    alias(libs.plugins.compose.compiler).apply(false)
}

subprojects {
    apply(plugin = "org.jetbrains.kotlin.multiplatform")

    configure<org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension> {
        jvm("desktop")
        applyDefaultHierarchyTemplate()
        js(IR) {
//                browser()
            nodejs() // Commented to save a bit of CI time. Testing in a browser should be enough.
        }
        @OptIn(ExperimentalWasmDsl::class)
        wasmJs {
            d8 {}