From e38963aa20ebc2c826809e9fdff930caa401baeb Mon Sep 17 00:00:00 2001 From: Cedric Champeau Date: Thu, 3 Feb 2022 15:03:19 +0100 Subject: [PATCH] Make sure executable ends with `.exe` under Windows This commit fixes the executable name when the plugin is running under Windows: `nativeRun` would fail because it doesn't append the `.exe` extension to the file name. Fixes #198 --- .github/workflows/gradle-windows.yml | 34 +++++++++++++++++++ .github/workflows/maven-windows.yml | 34 +++++++++++++++++++ .../gradle/tasks/BuildNativeImageTask.java | 3 +- 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/gradle-windows.yml create mode 100644 .github/workflows/maven-windows.yml diff --git a/.github/workflows/gradle-windows.yml b/.github/workflows/gradle-windows.yml new file mode 100644 index 000000000..c1afc420a --- /dev/null +++ b/.github/workflows/gradle-windows.yml @@ -0,0 +1,34 @@ +name: Windows Minimal Tests for Gradle + +on: + push: + paths: + - 'native-gradle-plugin/**' + - 'samples/**' + - 'common/**' + pull_request: + paths: + - 'native-gradle-plugin/**' + - 'samples/**' + - 'common/**' + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: graalvm/setup-graalvm@v1 + with: + version: 'dev' + java-version: '11' + components: 'native-image' + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Check and test the Gradle plugin + run: ./gradlew.bat :native-gradle-plugin:functionalTest --no-daemon --fail-fast + - name: Tests results + if: always() + uses: actions/upload-artifact@v2 + with: + name: functional-tests-results + path: native-maven-plugin/build/reports/tests/ diff --git a/.github/workflows/maven-windows.yml b/.github/workflows/maven-windows.yml new file mode 100644 index 000000000..0bc16de47 --- /dev/null +++ b/.github/workflows/maven-windows.yml @@ -0,0 +1,34 @@ +name: Windows Minimal Tests for Maven + +on: + push: + paths: + - 'native-maven-plugin/**' + - 'samples/**' + - 'common/**' + pull_request: + paths: + - 'native-maven-plugin/**' + - 'samples/**' + - 'common/**' + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: graalvm/setup-graalvm@v1 + with: + version: 'dev' + java-version: '11' + components: 'native-image' + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Check and test the Maven plugin + run: ./gradlew.bat :native-maven-plugin:functionalTest --no-daemon --fail-fast + - name: Tests results + if: always() + uses: actions/upload-artifact@v2 + with: + name: functional-tests-results + path: native-maven-plugin/build/reports/tests/ diff --git a/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java b/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java index a93b97ad7..988fd5c51 100644 --- a/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java +++ b/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java @@ -73,6 +73,7 @@ import java.nio.file.Paths; import java.util.List; +import static org.graalvm.buildtools.utils.SharedConstants.EXECUTABLE_EXTENSION; import static org.graalvm.buildtools.utils.SharedConstants.GU_EXE; import static org.graalvm.buildtools.utils.SharedConstants.NATIVE_IMAGE_EXE; @@ -107,7 +108,7 @@ protected Provider getGraalVMHome() { @Internal public Provider getExecutableName() { - return getOptions().flatMap(NativeImageOptions::getImageName); + return getOptions().flatMap(options -> options.getImageName().map(name -> name + EXECUTABLE_EXTENSION)); } @Internal