diff --git a/.github/workflows/build_mac.yml b/.github/workflows/build_mac.yml index 782b7d64..650c1f1e 100644 --- a/.github/workflows/build_mac.yml +++ b/.github/workflows/build_mac.yml @@ -19,12 +19,6 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - - name: Write Faktory Server Code - run: echo ${{ secrets.TOUCHLAB_TEST_ARTIFACT_CODE }} > kmmbridge/TOUCHLAB_TEST_ARTIFACT_CODE - - - name: Read Faktory Server Code - run: cat kmmbridge/TOUCHLAB_TEST_ARTIFACT_CODE - - name: Local Publish For Tests run: ./gradlew publishToMavenLocal --no-daemon --stacktrace --build-cache -PRELEASE_SIGNING_ENABLED=false -PVERSION_NAME=9.9.9 diff --git a/.gitignore b/.gitignore index 9ab56bd5..c06071e0 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,4 @@ build *.xcbkptlist !/.idea/codeStyles/* !/.idea/inspectionProfiles/* -.kotlin -TOUCHLAB_TEST_ARTIFACT_CODE \ No newline at end of file +.kotlin \ No newline at end of file diff --git a/kmmbridge-test/src/main/kotlin/Extensions.kt b/kmmbridge-test/src/main/kotlin/Extensions.kt index 0287ecc5..5613a3e9 100644 --- a/kmmbridge-test/src/main/kotlin/Extensions.kt +++ b/kmmbridge-test/src/main/kotlin/Extensions.kt @@ -1,8 +1,5 @@ -import co.touchlab.kmmbridge.findStringProperty import co.touchlab.kmmbridge.test.TestArtifactManager -import co.touchlab.kmmbridge.test.TestUploadArtifactManager import co.touchlab.kmmbridge.test.kmmBridgeExtension -import org.gradle.api.GradleException import org.gradle.api.Project @Suppress("unused") @@ -11,22 +8,3 @@ fun Project.testArtifacts() { artifactManager.set(TestArtifactManager()) artifactManager.finalizeValue() } - -/** - * This is for Touchlab use. See the code for more details. - */ -@Suppress("unused") -fun Project.testUploadArtifacts() { - val server = findStringProperty("TOUCHLAB_TEST_ARTIFACT_SERVER") - val code = findStringProperty("TOUCHLAB_TEST_ARTIFACT_CODE") - - if (server == null || code == null) { - throw GradleException("TODO: Figure out a way for forks to not fail builds. But not today...") - } - - val am = TestUploadArtifactManager(server, code) - - val artifactManager = kmmBridgeExtension.artifactManager - artifactManager.set(am) - artifactManager.finalizeValue() -} diff --git a/kmmbridge-test/src/main/kotlin/co/touchlab/kmmbridge/test/TestUploadArtifactManager.kt b/kmmbridge-test/src/main/kotlin/co/touchlab/kmmbridge/test/TestUploadArtifactManager.kt deleted file mode 100644 index a908631c..00000000 --- a/kmmbridge-test/src/main/kotlin/co/touchlab/kmmbridge/test/TestUploadArtifactManager.kt +++ /dev/null @@ -1,53 +0,0 @@ -package co.touchlab.kmmbridge.test - -import co.touchlab.kmmbridge.artifactmanager.ArtifactManager -import com.google.gson.Gson -import java.io.File -import java.time.Duration -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.RequestBody -import okhttp3.RequestBody.Companion.asRequestBody -import org.gradle.api.GradleException -import org.gradle.api.Task - -/** - * Simple artifact manager that posts files to our server (Touchlab). This isn't designed for general usage. Just for - * our tests. If there is more general demand for this functionality, reach out and we'll discuss ways of making it work. - */ -internal class TestUploadArtifactManager(private val server: String, private val code: String) : ArtifactManager { - override fun deployArtifact(task: Task, zipFilePath: File, version: String): String { - val body: RequestBody = zipFilePath.asRequestBody("application/octet-stream".toMediaTypeOrNull()) - val uploadRequest = - Request - .Builder() - .url( - "https://$server/infoadmin/storeTestZip", - ).post(body) - .addHeader("code", code) - .addHeader("Content-Type", "application/octet-stream") - .build() - - val okHttpClient = - OkHttpClient - .Builder() - .callTimeout(Duration.ofMinutes(5)) - .connectTimeout(Duration.ofMinutes(2)) - .writeTimeout(Duration.ofMinutes(5)) - .readTimeout(Duration.ofMinutes(2)) - .build() - - val response = okHttpClient.newCall(uploadRequest).execute() - if (response.code >= 400) { - throw GradleException("Test zip upload failed. Code: ${response.code}, message: ${response.message}") - } - - val uploadResponseString = response.body!!.string() - val url = Gson().fromJson(uploadResponseString, UploadReply::class.java).url - - return "https://$server$url" - } - - data class UploadReply(var url: String) -} diff --git a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/ArtifactManagerTest.kt b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/ArtifactManagerTest.kt index f4c653e6..761f1bda 100644 --- a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/ArtifactManagerTest.kt +++ b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/ArtifactManagerTest.kt @@ -2,7 +2,6 @@ package co.touchlab.kmmbridge import java.io.File import kotlin.test.assertEquals -import kotlin.test.assertFalse import kotlin.test.assertTrue import org.junit.jupiter.api.Test @@ -14,8 +13,6 @@ class ArtifactManagerTest : BasePluginTest() { val result = ProcessHelper.runSh( "./gradlew kmmBridgePublish " + - "-PTOUCHLAB_TEST_ARTIFACT_SERVER=api.touchlab.dev " + - "-PTOUCHLAB_TEST_ARTIFACT_CODE=${TOUCHLAB_TEST_ARTIFACT_CODE} " + "--stacktrace", workingDir = testProjectDir, ) @@ -26,21 +23,19 @@ class ArtifactManagerTest : BasePluginTest() { @Test fun runKmmBridgePublish() { val urlFile = File(testProjectDir, "allshared/build/kmmbridge/url") - assertFalse(urlFile.exists()) + if (urlFile.exists()) urlFile.delete() + val result = ProcessHelper.runSh( "./gradlew clean kmmBridgePublish " + "-PENABLE_PUBLISHING=true " + - "-PTOUCHLAB_TEST_ARTIFACT_SERVER=api.touchlab.dev " + - "-PTOUCHLAB_TEST_ARTIFACT_CODE=${TOUCHLAB_TEST_ARTIFACT_CODE} " + "--stacktrace", workingDir = testProjectDir, ) logExecResult(result) - assertTrue(urlFile.exists()) - val urlValue = urlFile.readText() - assertTrue(urlValue.startsWith("https://api.touchlab.dev/infoadmin/streamTestZip")) assertEquals(0, result.status) + assertTrue(urlFile.exists()) + assertEquals("test://0.1.8", urlFile.readText()) } } diff --git a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/BasePluginTest.kt b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/BasePluginTest.kt index c244e02f..026e127f 100644 --- a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/BasePluginTest.kt +++ b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/BasePluginTest.kt @@ -16,14 +16,10 @@ abstract class BasePluginTest { internal lateinit var settingsFile: File internal lateinit var buildFile: File - @Suppress("ktlint:standard:property-naming") - internal lateinit var TOUCHLAB_TEST_ARTIFACT_CODE: String - abstract fun testProjectPath(): String @BeforeEach fun setup() { - TOUCHLAB_TEST_ARTIFACT_CODE = File("TOUCHLAB_TEST_ARTIFACT_CODE").readText().lines().first() FileUtils.copyDirectory(testProjectSource, testProjectDir) ProcessHelper.runSh("git init;git add .;git commit -m 'arst'", workingDir = testProjectDir) settingsFile = File(testProjectDir, "settings.gradle.kts") diff --git a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/NonKmmBridgeTasksTest.kt b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/NonKmmBridgeTasksTest.kt index 71c8d459..063993de 100644 --- a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/NonKmmBridgeTasksTest.kt +++ b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/NonKmmBridgeTasksTest.kt @@ -13,9 +13,7 @@ class NonKmmBridgeTasksTest : BasePluginTest() { fun runBasicBuild() { val result = ProcessHelper.runSh( - "./gradlew linkDebugFrameworkIosSimulatorArm64 " + - "-PTOUCHLAB_TEST_ARTIFACT_SERVER=api.touchlab.dev " + - "-PTOUCHLAB_TEST_ARTIFACT_CODE=${TOUCHLAB_TEST_ARTIFACT_CODE}", + "./gradlew linkDebugFrameworkIosSimulatorArm64", workingDir = testProjectDir, ) logExecResult(result) diff --git a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/SpmLocalDevTest.kt b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/SpmLocalDevTest.kt index 6b34f66f..1f4e5506 100644 --- a/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/SpmLocalDevTest.kt +++ b/kmmbridge/src/test/kotlin/co/touchlab/kmmbridge/SpmLocalDevTest.kt @@ -10,9 +10,7 @@ class SpmLocalDevTest : BasePluginTest() { fun runSpmDevBuild() { val result = ProcessHelper.runSh( - "./gradlew spmDevBuild --stacktrace " + - "-PTOUCHLAB_TEST_ARTIFACT_SERVER=api.touchlab.dev " + - "-PTOUCHLAB_TEST_ARTIFACT_CODE=${TOUCHLAB_TEST_ARTIFACT_CODE}", + "./gradlew spmDevBuild --stacktrace", workingDir = testProjectDir, ) logExecResult(result) @@ -27,9 +25,7 @@ class SpmLocalDevTest : BasePluginTest() { ProcessHelper.runSh("rm -rdf .git", workingDir = testProjectDir) val result = ProcessHelper.runSh( - "./gradlew spmDevBuild --stacktrace " + - "-PTOUCHLAB_TEST_ARTIFACT_SERVER=api.touchlab.dev " + - "-PTOUCHLAB_TEST_ARTIFACT_CODE=${TOUCHLAB_TEST_ARTIFACT_CODE}", + "./gradlew spmDevBuild --stacktrace", workingDir = testProjectDir, ) logExecResult(result) diff --git a/test-projects/basic/allshared/build.gradle.kts b/test-projects/basic/allshared/build.gradle.kts index 726ab837..2eed5a38 100644 --- a/test-projects/basic/allshared/build.gradle.kts +++ b/test-projects/basic/allshared/build.gradle.kts @@ -18,8 +18,8 @@ kotlin { } kmmbridge { - testUploadArtifacts() - spm(swiftToolVersion = "5.8") { + testArtifacts() + spm(swiftToolVersion = "5.8", spmDirectory = "../") { iOS { v("14") } } }