From 49e8840fee916e2dfdbf85599192c98f72fee49c Mon Sep 17 00:00:00 2001 From: piotradamczyk5 <65554637+piotradamczyk5@users.noreply.github.com> Date: Mon, 19 Oct 2020 16:19:06 +0200 Subject: [PATCH] fix: Fix running flank workflows on Windows (#1250) * fix: Fix running flankScripts on Windows * skip ios test runs on Windows * fix WSL workflow by setting environment variables --- .github/workflows/wsl-workflow.yml | 5 ++-- flank-scripts/bash/buildFlankScripts.bat | 8 +++++++ flank-scripts/bash/buildFlankScripts.sh | 2 +- flank-scripts/bash/flankScripts.bat | 4 ++++ test_runner/build.gradle.kts | 23 +++++++++++-------- .../firebase/test/ios/IosRunCommandTest.kt | 4 ++++ 6 files changed, 33 insertions(+), 13 deletions(-) create mode 100755 flank-scripts/bash/buildFlankScripts.bat create mode 100755 flank-scripts/bash/flankScripts.bat diff --git a/.github/workflows/wsl-workflow.yml b/.github/workflows/wsl-workflow.yml index b026f077e9..4886d70ae8 100644 --- a/.github/workflows/wsl-workflow.yml +++ b/.github/workflows/wsl-workflow.yml @@ -43,10 +43,9 @@ jobs: sudo apt-get -y install openjdk-8-jdk - name: Gradle clean build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HEAD_REF: ${{ github.ref }} run: | + export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + export HEAD_REF=${{ github.ref }} ./gradlew clean build - name: Prepare Google Service Account diff --git a/flank-scripts/bash/buildFlankScripts.bat b/flank-scripts/bash/buildFlankScripts.bat new file mode 100755 index 0000000000..7c701773a2 --- /dev/null +++ b/flank-scripts/bash/buildFlankScripts.bat @@ -0,0 +1,8 @@ +Rem REPLACE with #1246 +SET DIR=%~dp0 + +SET FLANK_SCRIPTS=%DIR%\.. +SET GRADLE_EXECUTABLE_PATH=%FLANK_SCRIPTS%\.. + +%GRADLE_EXECUTABLE_PATH%\gradlew.bat flank-scripts:clean flank-scripts:assemble flank-scripts:shadowJar +copy %FLANK_SCRIPTS%\build\libs\flankScripts.jar %DIR%\flankScripts.jar diff --git a/flank-scripts/bash/buildFlankScripts.sh b/flank-scripts/bash/buildFlankScripts.sh index 55f04197bd..dcf74fa19f 100755 --- a/flank-scripts/bash/buildFlankScripts.sh +++ b/flank-scripts/bash/buildFlankScripts.sh @@ -4,5 +4,5 @@ DIR=`dirname "$BASH_SOURCE"` FLANK_SCRIPTS="$DIR/.." -"$FLANK_SCRIPTS/../gradlew" flank-scripts:clean flank-scripts:assemble flank-scripts:shadowJar +"$FLANK_SCRIPTS/../gradlew" :flank-scripts:clean :flank-scripts:assemble :flank-scripts:shadowJar cp "$FLANK_SCRIPTS"/build/libs/flankScripts.jar "$DIR/flankScripts.jar" diff --git a/flank-scripts/bash/flankScripts.bat b/flank-scripts/bash/flankScripts.bat new file mode 100755 index 0000000000..8158f96d59 --- /dev/null +++ b/flank-scripts/bash/flankScripts.bat @@ -0,0 +1,4 @@ +SET DIR=%~dp0 +SET scriptsJar=%DIR%\flankScripts.jar + +java -jar "%scriptsJar%" %* diff --git a/test_runner/build.gradle.kts b/test_runner/build.gradle.kts index c6dc7c5179..c01932edd4 100644 --- a/test_runner/build.gradle.kts +++ b/test_runner/build.gradle.kts @@ -3,9 +3,11 @@ import com.jfrog.bintray.gradle.BintrayExtension import groovy.util.Node import groovy.util.NodeList import org.gradle.api.tasks.testing.logging.TestExceptionFormat +import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.io.ByteArrayOutputStream import java.util.* +import java.nio.file.Paths plugins { application @@ -318,17 +320,17 @@ tasks.create("applyProguard", proguard.gradle.ProGuardTask::class.java) { val generateCliAsciiDoc by tasks.registering(JavaExec::class) { dependsOn(tasks.classes) classpath( - configurations.compile, - configurations.annotationProcessor, - sourceSets["main"].runtimeClasspath + configurations.compile, + configurations.annotationProcessor, + sourceSets["main"].runtimeClasspath ) group = "Documentation" description = "Generate AsciiDoc manpage" main = "picocli.codegen.docgen.manpage.ManPageGenerator" args = listOf( - application.mainClass.get(), - "--outdir=${project.rootDir}/docs/ascii/", - "-v" + application.mainClass.get(), + "--outdir=${project.rootDir}/docs/ascii/", + "-v" ) } @@ -383,10 +385,13 @@ val resolveArtifacts by tasks.registering { dependsOn(":flank-scripts:prepareJar") group = "verification" doLast { - val flankScriptsPath = rootDir.resolve("flank-scripts/bash/flankScripts").absolutePath - println(flankScriptsPath) + val flankScriptsRunnerName = if(DefaultNativePlatform.getCurrentOperatingSystem().isWindows) + "flankScripts.bat" else "flankScripts" + val flankScriptsPath = Paths.get("flank-scripts", "bash", flankScriptsRunnerName).toString() + val rootFlankScriptsPath = rootDir.resolve(flankScriptsPath).absolutePath + println(rootFlankScriptsPath) exec { - commandLine(flankScriptsPath, "testArtifacts", "-p", rootDir.absolutePath, "resolve") + commandLine(rootFlankScriptsPath, "testArtifacts", "-p", rootDir.absolutePath, "resolve") workingDir = rootDir } } diff --git a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosRunCommandTest.kt b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosRunCommandTest.kt index 82f6528042..987dcb4f73 100644 --- a/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosRunCommandTest.kt +++ b/test_runner/src/test/kotlin/ftl/cli/firebase/test/ios/IosRunCommandTest.kt @@ -347,6 +347,8 @@ class IosRunCommandTest { @Test fun `should dump shards on ios test run`() { + assumeFalse(isWindows) // TODO remove in #1180 + mockkStatic("ftl.run.DumpShardsKt") val runCmd = IosRunCommand() runCmd.configPath = "./src/test/kotlin/ftl/fixtures/simple-ios-flank.yml" @@ -356,6 +358,8 @@ class IosRunCommandTest { @Test fun `should dump shards on ios test run and not upload when disable-upload-results set`() { + assumeFalse(isWindows) // TODO remove in #1180 + mockkStatic("ftl.run.DumpShardsKt") mockkObject(GcStorage) { val runCmd = IosRunCommand()