mirror of https://github.com/smithy-lang/smithy-rs
57 lines
2.2 KiB
Plaintext
57 lines
2.2 KiB
Plaintext
/*
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
description = "Generates Rust/Typescript code from Smithy models and runs the protocol tests"
|
|
extra["displayName"] = "Smithy :: Rust :: Codegen :: Server :: Typescript :: Test"
|
|
extra["moduleName"] = "software.amazon.smithy.rust.kotlin.codegen.server.typescript.test"
|
|
|
|
tasks["jar"].enabled = false
|
|
|
|
plugins {
|
|
java
|
|
id("software.amazon.smithy.gradle.smithy-base")
|
|
id("software.amazon.smithy.gradle.smithy-jar")
|
|
}
|
|
|
|
val smithyVersion: String by project
|
|
val defaultRustDocFlags: String by project
|
|
val properties = PropertyRetriever(rootProject, project)
|
|
val buildDir = layout.buildDirectory.get().asFile
|
|
|
|
val pluginName = "rust-server-codegen-typescript"
|
|
val workingDirUnderBuildDir = "smithyprojections/codegen-server-test-typescript/"
|
|
|
|
configure<software.amazon.smithy.gradle.SmithyExtension> {
|
|
outputDirectory = layout.buildDirectory.dir(workingDirUnderBuildDir).get().asFile
|
|
}
|
|
|
|
dependencies {
|
|
implementation(project(":codegen-server:typescript"))
|
|
implementation("software.amazon.smithy:smithy-aws-protocol-tests:$smithyVersion")
|
|
implementation("software.amazon.smithy:smithy-protocol-test-traits:$smithyVersion")
|
|
implementation("software.amazon.smithy:smithy-aws-traits:$smithyVersion")
|
|
}
|
|
|
|
val allCodegenTests = "../../codegen-core/common-test-models".let { commonModels ->
|
|
listOf(
|
|
CodegenTest("com.amazonaws.simple#SimpleService", "simple", imports = listOf("$commonModels/simple.smithy")),
|
|
CodegenTest("com.aws.example.ts#PokemonService", "pokemon-service-server-sdk"),
|
|
)
|
|
}
|
|
|
|
project.registerGenerateSmithyBuildTask(rootProject, pluginName, allCodegenTests)
|
|
project.registerGenerateCargoWorkspaceTask(rootProject, pluginName, allCodegenTests, workingDirUnderBuildDir)
|
|
project.registerGenerateCargoConfigTomlTask(buildDir.resolve(workingDirUnderBuildDir))
|
|
|
|
tasks["smithyBuild"].dependsOn("generateSmithyBuild")
|
|
tasks["assemble"].finalizedBy("generateCargoWorkspace")
|
|
|
|
project.registerModifyMtimeTask()
|
|
project.registerCargoCommandsTasks(buildDir.resolve(workingDirUnderBuildDir), defaultRustDocFlags)
|
|
|
|
tasks["test"].finalizedBy(cargoCommands(properties).map { it.toString })
|
|
|
|
tasks["clean"].doFirst { delete("smithy-build.json") }
|