pumpkin-api-kt/.github/scripts/prepare-consumer.sh
2026-09-06 20:55:28 -04:00

67 lines
1.6 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
: "${PUMPKIN_CI_CONSUMER:?Set PUMPKIN_CI_CONSUMER to the temporary consumer directory}"
mkdir -p "$PUMPKIN_CI_CONSUMER/src/wasmWasiMain/kotlin/ci"
cat > "$PUMPKIN_CI_CONSUMER/settings.gradle.kts" <<'EOF'
pluginManagement {
repositories {
maven { url = uri(providers.environmentVariable("PUMPKIN_CI_REPOSITORY").get()) }
gradlePluginPortal()
mavenCentral()
}
}
rootProject.name = "pumpkin-ci-consumer"
EOF
cat > "$PUMPKIN_CI_CONSUMER/build.gradle.kts" <<'EOF'
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
plugins {
kotlin("multiplatform") version "2.4.0"
id("io.github.pumpkin-mc.plugin") version "0.1.0-dev"
}
repositories {
maven { url = uri(providers.environmentVariable("PUMPKIN_CI_REPOSITORY").get()) }
mavenCentral()
}
kotlin {
@OptIn(ExperimentalWasmDsl::class)
wasmWasi {
nodejs()
binaries.executable()
}
}
pumpkin {
apiVersion.set("0.1.0-dev")
pluginClass.set("ci.SmokePlugin")
}
EOF
cat > "$PUMPKIN_CI_CONSUMER/gradle.properties" <<'EOF'
kotlin.daemon.jvmargs=-Xmx2g
EOF
cat > "$PUMPKIN_CI_CONSUMER/src/wasmWasiMain/kotlin/ci/SmokePlugin.kt" <<'EOF'
package ci
import plugin.PluginMetadata
import plugin.PumpkinPlugin
class SmokePlugin : PumpkinPlugin() {
override fun metadata() = PluginMetadata(
name = "ci-smoke-plugin",
version = "0.1.0",
authors = listOf("Pumpkin"),
description = "Verifies consumer compilation with the generated plugin factory.",
dependencies = emptyList(),
permissions = emptyList(),
)
}
EOF