diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000000..d7851faea0cc --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,47 @@ +# build version +version: '{build}' + +# branches to build +branches: + # blacklist + except: + - gh-pages + - travis + - appveyor + +# Do not build on tags +skip_tags: true + +# enviroment settings +environment: + matrix: + - JAVA_HOME: C:\Program Files\Java\jdk1.7.0 + GOOGLE_CLOUD_PROJECT: + secure: uFZ/+vyRarW3Xot03J4h5w== + SECRET: + secure: aiT7rDn1EzWK6imZcF/1q8NqPP5rLf7T9dUB+QFna8Zpa4k4ezMX/ZFYhFz02Aia3VLV8uD8M5esqBVB3NB9ah7kqsWMbm3blVJF8UiuR/+snafR3q/jbQ/E4FJ6TY/Xx4WgnSOFpXBFqlGvUCtrvzH5V8+M+aDmuj8wHmb1/Y6ms7HQ42uHp9/v8YhnGdZFERgD61r5v2zSkqwKIGNaSw6Zd1+hPYIEK8iCAgE8jzc= + GOOGLE_API_KEY: + secure: v/wAbkBCQm25Yqk4n/+7II/Klsibax+kymVIJREJgGTjBYR5AlIkpTT2oECy0Z+B + +# install required tools (maven, secure-file, encrypted files) +install: + - cmd: echo %JAVA_HOME% + - cmd: echo %M2_HOME% + - ps: $origin = git config --get remote.origin.url; git clone --quiet -b appveyor $origin appveyor + - cmd: nuget install secure-file -ExcludeVersion + - cmd: IF DEFINED SECRET (secure-file\tools\secure-file -decrypt appveyor\key.json.enc -secret %SECRET% -out appveyor\key.json) + - cmd: IF DEFINED SECRET (SET GOOGLE_APPLICATION_CREDENTIALS=%APPVEYOR_BUILD_FOLDER%\appveyor\key.json) + - cmd: ECHO %GOOGLE_APPLICATION_CREDENTIALS% + +# build and install artifacts +build_script: + - mvn clean install -DskipTests + +# verify artifacts (no integration tests on PR) +test_script: + - IF DEFINED APPVEYOR_PULL_REQUEST_NUMBER (mvn verify -DskipITs) ELSE (mvn verify) + +# preserve dependencies between builds +cache: + - C:\maven\ + - C:\Users\appveyor\.m2 diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/testing/LocalPubsubHelper.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/testing/LocalPubsubHelper.java index 3083cd4e8aeb..5a7b21b80bec 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/testing/LocalPubsubHelper.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/testing/LocalPubsubHelper.java @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import java.util.UUID; /** @@ -70,14 +71,22 @@ public class LocalPubsubHelper { } } + private static boolean isWindows() { + return System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("windows"); + } + private LocalPubsubHelper() { port = LocalServiceHelper.findAvailablePort(DEFAULT_PORT); + String binName = BIN_NAME; + if (isWindows()) { + binName = BIN_NAME.replace("/", "\\"); + } List gcloudCommand = new ArrayList<>(Arrays.asList(GCLOUD_CMD_TEXT.split(" "))); gcloudCommand.add(GCLOUD_CMD_PORT_FLAG + "localhost:" + port); GCloudEmulatorRunner gcloudRunner = new GCloudEmulatorRunner(gcloudCommand, VERSION_PREFIX, MIN_VERSION); DownloadableEmulatorRunner downloadRunner = - new DownloadableEmulatorRunner(Arrays.asList(BIN_NAME, BIN_CMD_PORT_FLAG + port), + new DownloadableEmulatorRunner(Arrays.asList(binName, BIN_CMD_PORT_FLAG + port), EMULATOR_URL, MD5_CHECKSUM); serviceHelper = new LocalServiceHelper(Arrays.asList(gcloudRunner, downloadRunner), port); projectId = PROJECT_ID_PREFIX + UUID.randomUUID().toString();