Cannot run gradle deploy

I'm following your instructions in the java tutorial, and I keep getting an error when I run the deploy command about deprecated gradle features.  Is there a specific version of gradle I should be running?
Here is a stacktrace:
paperclip:~/hl/incubator/blackboard-automated-test/lambda-selenium/lambda-selenium-java$ gradle clean unzipLibs shadowJar deploy --stacktrace
> Task :deploy FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':deploy'.
> A problem occurred starting process 'command 'sls''

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':deploy'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:596)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'sls''
        at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:226)
        at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:204)
        at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:349)
        at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:85)
        at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42)
        ... 3 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'sls'
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
        at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
        at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:67)
        ... 4 more
Caused by: java.io.IOException: Cannot run program "sls" (in directory "/Users/thomas/hl/incubator/blackboard-automated-test/lambda-selenium/lambda-selenium-java"): error=2, No such file or directory
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
        ... 6 more
Caused by: java.io.IOException: error=2, No such file or directory
        ... 7 more

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.7/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 17s
7 actionable tasks: 6 executed, 1 up-to-date

Try installing the serverless framework, I believe I left this out of the README, I am opening a PR to add this step in.
npm install -g serverless

Updated the README to reflect that change. https://github.com/blackboard/lambda-selenium/blob/master/docs/java-tutorial.md

Right, I'm just using environment variables for this, and it doesn't seem to pickup the AWS_DEFAULT_REGION variable

I think AWS_REGION is the right one

@wesmcouch  Thanks for all your help! This is a really neat project, and I hope to be able to use it.
I did run into multiple issues while setting this up.  In case this can help someone else, here are some of the issues/solutions:
For using AWS credentials that are not part of a profile:
When running the gradle clean unzipLibs shadowJar deploy command, the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_REGION environment variables need to be set in the build.gradle using the following notation environment "AWS_ACCESS_KEY_ID", "myaccesskeyid".
When running the gradle test command, the same variables need to be set in the shell that you are running the command.
(If you're using an AWS Role based login with or without MFA, you'll need to use the aws sts assume-role command to generate temporary credentials.
Also, I received an error about the version of java that the software was compiled with.  The solution for me was to install java8 and set the JAVA_HOME directory to java8.

I am running into the same issue which Willingham ran into which is
BUILD FAILED in 19s
7 actionable tasks: 6 executed, 1 up-to-date
when I ran
gradle clean unzipLibs shadowJar deploy
I looked on the discussion which suggests issuing command
npm install -g serverless
This command seems to work fine and Im issuing it before I issue gradle ... deploy command.
But why Im still getting build failure? I followed instructions on your wiki page but Im stucked. Any suggestions will be appreciated.

Can you run the command with --stacktrace and give the output of the exception?

C:\Users\pshiwakoti\Desktop\lambda-selenium-master\lambda-selenium-java>npm install -g serverless
C:\Users\pshiwakoti\AppData\Roaming\npm\sls -> C:\Users\pshiwakoti\AppData\Roaming\npm\node_modules\serverless\bin\serverless
C:\Users\pshiwakoti\AppData\Roaming\npm\slss -> C:\Users\pshiwakoti\AppData\Roaming\npm\node_modules\serverless\bin\serverless
C:\Users\pshiwakoti\AppData\Roaming\npm\serverless -> C:\Users\pshiwakoti\AppData\Roaming\npm\node_modules\serverless\bin\serverless

<EMAIL_ADDRESS>postinstall C:\Users\pshiwakoti\AppData\Roaming\npm\node_modules\serverless
node ./scripts/postinstall.js

<EMAIL_ADDRESS>updated 1 package in 22.628s

C:\Users\pshiwakoti\Desktop\lambda-selenium-master\lambda-selenium-java>gradle clean unzipLibs shadowJar deploy --stacktrace

Task :deploy FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':deploy'.

A problem occurred starting process 'command 'sls''

Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':deploy'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:74)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:131)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:46)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:343)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:212)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:115)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:47)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:65)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'sls''
at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:231)
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:209)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:355)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:85)
at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42)
... 3 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'sls'
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WindowsProcessLauncher.start(WindowsProcessLauncher.java:22)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:67)
... 4 more
Caused by: java.io.IOException: Cannot run program "sls" (in directory "C:\Users\pshiwakoti\Desktop\lambda-selenium-master\lambda-selenium-java"): CreateProcess error=2, The system cannot find the file specified
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 7 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
... 8 more

Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 19s
7 actionable tasks: 6 executed, 1 up-to-date

The sls command is installed with serverless.  Can you verify that you can run the serverless/sls command in your current directory.

C:\Users\pshiwakoti\Desktop\lambda-selenium-master\lambda-selenium-java>serverless/sls
Serverless Error ---------------------------------------
Serverless command "/sls" not found. Did you mean "logs"? Run "serverless help" for a list of all available commands.
Get Support --------------------------------------------
Docs:          docs.serverless.com
Bugs:          github.com/serverless/serverless/issues
Issues:        forum.serverless.com
Your Environment Information -----------------------------
OS:                     win32
Node Version:           8.11.2
Serverless Version:     1.27.3

I can't verify this works on windows, but it sounds like sls might not be hooked up to your $PATH environment variable. I would add C:\Users\pshiwakoti\AppData\Roaming\npm\ to your $PATH variable, and verify sls --version command works. Once this is complete I think it should work. This has never been tested on windows, and it is assuming a unix environment when specifying directories.

The command is serverless orsls, not both.  Sorry for the confusion.

Sls is set up. C:\Users\pshiwakoti>sls --version
1.27.3

I just put some steps together that will work with docker on Windows. First install docker..
You will need to modify this script and replace the AWS access key and secret with your own, included are examples.
First run this to get to the command line of the docker container
docker run -i -t jimador/docker-jdk-8-maven-node /bin/bash
Next run the following lines, replacing the accesskeys with your own.
git clone https://github.com/blackboard/lambda-selenium.git
cd /lambda-selenium/lambda-selenium-java
npm install serverless -g
wget https://services.gradle.org/distributions/gradle-3.4.1-bin.zip
mkdir /opt/gradle
unzip -d /opt/gradle gradle-3.4.1-bin.zip
export PATH=$PATH:/opt/gradle/gradle-3.4.1/bin
curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
export PATH=~/.local/bin:$PATH
pip install awscli --upgrade --user
mkdir ~/.aws
touch ~/.aws/credentials
touch ~/.aws/config
echo "[default]" >> ~/.aws/credentials
echo "aws_access_key_id=AKIAIOSFODNN7EXAMPLE" >> ~/.aws/credentials
echo "aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" >> ~/.aws/credentials
echo "[default]" >> ~/.aws/config
echo "region=us-east-1" >> ~/.aws/config
echo "output=json" >> ~/.aws/config
gradle clean unzipLibs shadowJar deploy

Thank you for the guide. But here is the stacktrace Im getting after following your steps: I think it is missing serverless environment and I reran with the npm .. serverless command
root@7a45574385f8:/lambda-selenium/lambda-selenium-java# gradle clean unzipLibs shadowJar deploy --stacktrace
:clean
:unzipLibs UP-TO-DATE
:compileJava
:processResources
:classes
:compileTestJava
:processTestResources NO-SOURCE
:testClasses
:shadowJar
:deploy
Serverless: Packaging service...
Serverless Error ---------------------------------------
ServerlessError: The security token included in the request is invalid.
Get Support --------------------------------------------
Docs:          docs.serverless.com
Bugs:          github.com/serverless/serverless/issues
Issues:        forum.serverless.com
Your Environment Information -----------------------------
OS:                     linux
Node Version:           8.6.0
Serverless Version:     1.27.3
:deploy FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':deploy'.

Process 'command 'sls'' finished with non-zero exit value 1

Try:
Run with --info or --debug option to get more log output.

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':deploy'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:256)
at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:253)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:175)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
Caused by: org.gradle.process.internal.ExecException: Process 'command 'sls'' finished with non-zero exit value 1
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:369)
at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:31)
at org.gradle.api.tasks.AbstractExecTask.exec(AbstractExecTask.java:54)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:632)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:615)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
... 70 more

BUILD FAILED
Total time: 36.589 secs

FYI I have provided my valid unexpired credentials like aws_access_key_id and aws_secret_access_key. We are using Multi Factor Authentication. So Im not sure how to set that token up.

I did that this morning. Credentials are good for 12 hours. So I tried
echo "aws_session_token = XXX" >> /.aws/credentials
where XXX is the token. Then did gradle .. deploy. No luck yet

After I copied my credentials from windows's .aws folder to Docker's Unix folder I was able to able to deploy and test it. Thank you.

hi Wesmcouch, I was able to build and test last week but today I am having same issue again. Sls Deploy failed. Here is the stacktrace. I did update my aws credentials with the current unexpired ones. But it still is showing the same error.

Your Environment Information -----------------------------
OS:                     linux
Node Version:           8.6.0
Serverless Version:     1.27.3
:deploy FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':deploy'.

Process 'command 'sls'' finished with non-zero exit value 1

Try:
Run with --info or --debug option to get more log output.

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':deploy'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)

hi Wesmcouch, I am having the following test failure. I tried to see stacktrace and info, here is what I get.
root@87c00d8bacfa:/lambda-selenium/lambda-selenium-java# gradle clean test --info
Initialized native services in: /root/.gradle/native
Connected to daemon DaemonInfo{pid=148, address=[9c3614ab-3d0b-422c-a001-c5f483100159 port:36653, addresses:[/<IP_ADDRESS>]], state=Idle, lastBusy=1528729033215, context=DefaultDaemonContext[uid=5da9cf11-d9ca-4989-9525-1a185ee7b1db,javaHome=/usr/lib/jvm/java-8-oracle,daemonRegistryDir=/root/.gradle/daemon,pid=148,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=US-ASCII,-Duser.country=US,-Duser.language=en,-Duser.variant]}. Dispatching request Build{id=3642deb3-72bb-46ab-ac9a-7b37041640be.1, currentDir=/lambda-selenium/lambda-selenium-java}.
Received result org.gradle.launcher.daemon.protocol.BuildStarted@2b175c00 from daemon DaemonInfo{pid=148, address=[9c3614ab-3d0b-422c-a001-c5f483100159 port:36653, addresses:[/<IP_ADDRESS>]], state=Idle, lastBusy=1528729033215, context=DefaultDaemonContext[uid=5da9cf11-d9ca-4989-9525-1a185ee7b1db,javaHome=/usr/lib/jvm/java-8-oracle,daemonRegistryDir=/root/.gradle/daemon,pid=148,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=US-ASCII,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be starting).
The client will now receive all logging from the daemon (pid: 148). The daemon log file: /root/.gradle/daemon/3.4.1/daemon-148.out.log
Starting 13th build in daemon [uptime: 45 mins 52.615 secs, performance: 100%, no major garbage collections]
Executing build with daemon context: DefaultDaemonContext[uid=5da9cf11-d9ca-4989-9525-1a185ee7b1db,javaHome=/usr/lib/jvm/java-8-oracle,daemonRegistryDir=/root/.gradle/daemon,pid=148,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=US-ASCII,-Duser.country=US,-Duser.language=en,-Duser.variant]
Creating new cache for plugin-use-metadata, path /root/.gradle/caches/3.4.1/plugin-resolution/plugin-use-metadata.bin, access org.gradle.cache.internal.DefaultCacheAccess@56dc3195
Creating new cache for client-status, path /root/.gradle/caches/3.4.1/plugin-resolution/client-status.bin, access org.gradle.cache.internal.DefaultCacheAccess@56dc3195
Starting Build
Settings evaluated using settings file '/lambda-selenium/lambda-selenium-java/settings.gradle'.
Projects loaded. Root project using build file '/lambda-selenium/lambda-selenium-java/build.gradle'.
Included projects: [root project 'lambda-selenium']
Evaluating root project 'lambda-selenium' using build file '/lambda-selenium/lambda-selenium-java/build.gradle'.
Creating new cache for metadata-2.23/module-metadata, path /root/.gradle/caches/modules-2/metadata-2.23/module-metadata.bin, access org.gradle.cache.internal.DefaultCacheAccess@1b7021a
Creating new cache for metadata-2.23/artifact-at-repository, path /root/.gradle/caches/modules-2/metadata-2.23/artifact-at-repository.bin, access org.gradle.cache.internal.DefaultCacheAccess@1b7021a
Using 2 worker leases.
All projects evaluated.
Selected primary task 'clean' from project :
Selected primary task 'test' from project :
Creating new cache for fileHashes, path /lambda-selenium/lambda-selenium-java/.gradle/3.4.1/taskHistory/fileHashes.bin, access org.gradle.cache.internal.DefaultCacheAccess@586f2f12
Creating new cache for annotation-processors, path /lambda-selenium/lambda-selenium-java/.gradle/3.4.1/fileContent/annotation-processors.bin, access org.gradle.cache.internal.DefaultCacheAccess@44044863
Tasks to be executed: [task ':clean', task ':compileJava', task ':processResources', task ':classes', task ':compileTestJava', task ':processTestResources', task ':testClasses', task ':test']
Creating new cache for jvmClassSignatures, path /lambda-selenium/lambda-selenium-java/.gradle/3.4.1/taskHistory/jvmClassSignatures.bin, access org.gradle.cache.internal.DefaultCacheAccess@586f2f12
Creating new cache for fileSnapshots, path /lambda-selenium/lambda-selenium-java/.gradle/3.4.1/taskHistory/fileSnapshots.bin, access org.gradle.cache.internal.DefaultCacheAccess@586f2f12
Creating new cache for taskHistory, path /lambda-selenium/lambda-selenium-java/.gradle/3.4.1/taskHistory/taskHistory.bin, access org.gradle.cache.internal.DefaultCacheAccess@586f2f12
:clean (Thread[Daemon worker Thread 9,5,main]) started.
:clean
Putting task artifact state for task ':clean' into context took 0.0 secs.
Executing task ':clean' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
:clean (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.096 secs.
:compileJava (Thread[Daemon worker Thread 9,5,main]) started.
:compileJava
Putting task artifact state for task ':compileJava' into context took 0.001 secs.
Task :compileJava class loader hash: ac08a4e08b0ff990510d13105b85ea38
Task :compileJava actions class loader hash: 1526b3b109d06b230b32697697c7e0ca
Creating new cache for metadata-2.23/module-versions, path /root/.gradle/caches/modules-2/metadata-2.23/module-versions.bin, access org.gradle.cache.internal.DefaultCacheAccess@1b7021a
Executing task ':compileJava' (up-to-date check took 0.36 secs) due to:
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/classes/main has changed.
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/classes/main/com has been removed.
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/classes/main/com/blackboard has been removed.
All input files are considered out-of-date for incremental task ':compileJava'.
Compiling with JDK Java compiler API.
:compileJava (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.732 secs.
:processResources (Thread[Daemon worker Thread 9,5,main]) started.
:processResources
Putting task artifact state for task ':processResources' into context took 0.001 secs.
Task :processResources class loader hash: ac08a4e08b0ff990510d13105b85ea38
Task :processResources actions class loader hash: 6555dac1e74b24ca44f0b730fe968693
Executing task ':processResources' (up-to-date check took 0.003 secs) due to:
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/resources/main has changed.
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/resources/main/lib has been removed.
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/resources/main/lib/libosmesa.so has been removed.
:processResources (Thread[Daemon worker Thread 9,5,main]) completed. Took 1.974 secs.
:classes (Thread[Daemon worker Thread 9,5,main]) started.
:classes
Skipping task ':classes' as it has no actions.
:classes (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.002 secs.
:compileTestJava (Thread[Daemon worker Thread 9,5,main]) started.
:compileTestJava
Putting task artifact state for task ':compileTestJava' into context took 0.0 secs.
Task :compileTestJava class loader hash: ac08a4e08b0ff990510d13105b85ea38
Task :compileTestJava actions class loader hash: 1526b3b109d06b230b32697697c7e0ca
Executing task ':compileTestJava' (up-to-date check took 0.046 secs) due to:
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/classes/test has changed.
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/classes/test/com has been removed.
Output property 'destinationDir' file /lambda-selenium/lambda-selenium-java/build/classes/test/com/blackboard has been removed.
All input files are considered out-of-date for incremental task ':compileTestJava'.
Compiling with JDK Java compiler API.
:compileTestJava (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.238 secs.
:processTestResources (Thread[Daemon worker Thread 9,5,main]) started.
:processTestResources
Putting task artifact state for task ':processTestResources' into context took 0.0 secs.
file or directory '/lambda-selenium/lambda-selenium-java/src/test/resources', not found
Skipping task ':processTestResources' as it has no source files and no previous output files.
:processTestResources NO-SOURCE
:processTestResources (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.003 secs.
:testClasses (Thread[Daemon worker Thread 9,5,main]) started.
:testClasses
Skipping task ':testClasses' as it has no actions.
:testClasses (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.001 secs.
:test (Thread[Daemon worker Thread 9,5,main]) started.
:test
Putting task artifact state for task ':test' into context took 0.0 secs.
Task :test class loader hash: ac08a4e08b0ff990510d13105b85ea38
Task :test actions class loader hash: 1526b3b109d06b230b32697697c7e0ca
Executing task ':test' (up-to-date check took 0.023 secs) due to:
No history is available.
Starting process 'Gradle Test Executor 1'. Working directory: /lambda-selenium/lambda-selenium-java Command: /usr/lib/jvm/java-8-oracle/bin/java -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dfile.encoding=US-ASCII -Duser.country=US -Duser.language=en -Duser.variant -ea -cp /root/.gradle/caches/3.4.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 1'
Successfully started process 'Gradle Test Executor 1'
Stopped 0 worker daemon(s).
Initialized native services in: /root/.gradle/native
Gradle Test Executor 1 started executing tests.
com.blackboard.testing.tests.ExampleTestSuite STANDARD_OUT
Running categories [interface org.junit.Test]

com.blackboard.testing.tests.ExampleTestSuite > runTest[com.blackboard.testing.tests.LambdaTest:blackboardTest] STANDARD_ERROR
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Gradle Test Executor 1 finished executing tests.
com.blackboard.testing.tests.ExampleTestSuite > runTest[com.blackboard.testing.tests.LambdaTest:blackboardTest] FAILED
com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey), com.amazonaws.auth.profile.ProfileCredentialsProvider@7adadec: Duplicate property values for [aws_access_key_id]., com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@41cb898c: The requested metadata is not found at http://<IP_ADDRESS>/latest/meta-data/iam/security-credentials/]
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:136)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1166)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.runBeforeRequestHandlers(AmazonHttpClient.java:762)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:724)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at com.amazonaws.services.lambda.AWSLambdaClient.doInvoke(AWSLambdaClient.java:2355)
at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:2331)
at com.amazonaws.services.lambda.AWSLambdaClient.executeInvoke(AWSLambdaClient.java:1345)
at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:1321)
at com.amazonaws.services.lambda.invoke.LambdaInvokerFactory$LambdaInvocationHandler.invoke(LambdaInvokerFactory.java:215)
at com.sun.proxy.$Proxy22.runTest(Unknown Source)
at com.blackboard.testing.lambda.TestInvoker.run(TestInvoker.java:19)
at com.blackboard.testing.tests.ExampleTestSuite.runTest(ExampleTestSuite.java:33)
com.blackboard.testing.tests.ExampleTestSuite > runTest[com.blackboard.testing.tests.LambdaTest:googleTest] FAILED
com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey), com.amazonaws.auth.profile.ProfileCredentialsProvider@7adadec: Duplicate property values for [aws_access_key_id]., com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@41cb898c: The requested metadata is not found at http://<IP_ADDRESS>/latest/meta-data/iam/security-credentials/]
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:136)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1166)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.runBeforeRequestHandlers(AmazonHttpClient.java:762)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:724)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at com.amazonaws.services.lambda.AWSLambdaClient.doInvoke(AWSLambdaClient.java:2355)
at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:2331)
at com.amazonaws.services.lambda.AWSLambdaClient.executeInvoke(AWSLambdaClient.java:1345)
at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:1321)
at com.amazonaws.services.lambda.invoke.LambdaInvokerFactory$LambdaInvocationHandler.invoke(LambdaInvokerFactory.java:215)
at com.sun.proxy.$Proxy22.runTest(Unknown Source)
at com.blackboard.testing.lambda.TestInvoker.run(TestInvoker.java:19)
at com.blackboard.testing.tests.ExampleTestSuite.runTest(ExampleTestSuite.java:33)
2 tests completed, 2 failed
Finished generating test XML results (0.024 secs) into: /lambda-selenium/lambda-selenium-java/build/test-results/test
Generating HTML test report...
Finished generating test html results (0.037 secs) into: /lambda-selenium/lambda-selenium-java/build/reports/tests/test
:test FAILED
:test (Thread[Daemon worker Thread 9,5,main]) completed. Took 6.602 secs.
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':test'.

There were failing tests. See the report at: file:///lambda-selenium/lambda-selenium-java/build/reports/tests/test/index.html

Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED
Total time: 11.598 secs
Stopped 0 worker daemon(s).
Received result Failure[value=org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':test'.] from daemon DaemonInfo{pid=148, address=[9c3614ab-3d0b-422c-a001-c5f483100159 port:36653, addresses:[/<IP_ADDRESS>]], state=Idle, lastBusy=1528729033215, context=DefaultDaemonContext[uid=5da9cf11-d9ca-4989-9525-1a185ee7b1db,javaHome=/usr/lib/jvm/java-8-oracle,daemonRegistryDir=/root/.gradle/daemon,pid=148,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=US-ASCII,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be done).
root@87c00d8bacfa:/lambda-selenium/lambda-selenium-java#

Hey it looks like the credentials are still the issue, maybe try to fix it the same way you did before, that should probably fix it.

I was able to build it successfully. But its failing the test.

com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey), com.amazonaws.auth.profile.ProfileCredentialsProvider@7adadec: Duplicate property values for [aws_access_key_id].

How to avoid Docker? I am not able to open and view screenshot files generated. Is there a replacement for Docker? I tried Cygwin but wget and curl commands failed with Cygwin. Im not sure if I should migrate to Mac?

hi Wesmcouch, Can you please suggest me if migrating to Mac is a better option instead of using Docker? Since the results are not saveable from Docker, why did you suggest me to use Docker in previous thread?

@pshiwakoti1, I specified this in my original post, you might not have seen the edit, it was done shortly after I commented.

Edit: You will want to create a shared volume so that you can view the results (screenshots etc) in your normal desktop environment. To do that checkout https://docs.docker.com/storage/volumes/

hi Wesmcouch, I have been trying to come up with a Docker command that would copy my build results like screenshots folder to windows directory but I just haven't been able to do so. I asked around and nobody is expert on Docker. If you could please provide that command I would really appreciate it.

It turns out on Windows Dos Shell, I could type:  docker cp 3433343:/folder to the files on docker that needs to be copied .
That did the magic. Thanks

Hi,
I deployed the app using the docker commands, but got the same test result 'driver not executable' for both tests.  Did prakash-shiwakota end up able to execute the tests successfully?  My reading of the error is that it was due to the chromedriver executable failing - that is that the chromedriver was not able to be used by webdriver, rather than the inability to save screenshots?
Caused by: java.lang.Throwable: The driver is not executable: /var/task/lib/chromedriver
at com.google.common.base.Preconditions.checkState(Preconditions.java:534)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:140)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:131)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:329)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)
at com.blackboard.testing.driver.LambdaWebDriverFactory.createWebDriver(LambdaWebDriverFactory.java:36)
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.createDriver(WebDriverThreadLocalContainer.java:227)
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.getAndCheckWebDriver(WebDriverThreadLocalContainer.java:111)
at com.codeborne.selenide.WebDriverRunner.getAndCheckWebDriver(WebDriverRunner.java:142)
at com.codeborne.selenide.impl.Navigator.navigateToAbsoluteUrl(Navigator.java:69)
at com.codeborne.selenide.impl.Navigator.open(Navigator.java:32)
at com.codeborne.selenide.Selenide.open(Selenide.java:79)
at com.codeborne.selenide.Selenide.open(Selenide.java:53)
at com.blackboard.testing.tests.LambdaTest.blackboardTest(LambdaTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.blackboard.testing.lambda.LambdaTestHandler.handleRequest(LambdaTestHandler.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at lambdainternal.EventHandlerLoader$PojoMethodRequestHandler.handleRequest(EventHandlerLoader.java:259)
at lambdainternal.EventHandlerLoader$PojoHandlerAsStreamHandler.handleRequest(EventHandlerLoader.java:178)
at lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:888)
at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:283)
at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:64)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:94)

Hi, I don't think I should make a new issue for this, but I'm hoping someone can help me out. When I run the command gradle clean unzipLibs shadowJar deploy I get the following error messages:
Serverless: Warning the Serverless Dashboard doesn't support the following runtime: java8
Serverless: Packaging service...

  Error --------------------------------------------------

  Error: ENOENT: no such file or directory, open 'build/libs/lambda-selenium-all.jar'

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          darwin
     Node Version:              12.9.0
     Framework Version:         1.54.0
     Plugin Version:            3.1.2
     SDK Version:               2.1.2
     Components Core Version:   1.1.1
     Components CLI Version:    1.2.3

> Task :deploy FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':deploy'.
> Process 'command 'sls'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 14s
7 actionable tasks: 6 executed, 1 up-to-date

The main thing concerning me is the line `Serverless: Warning the Serverless Dashboard doesn't support the following runtime: java8`.

I've only just set up AWS and serverless, so I'm not very familiar with either. Can someone shed some light on what the problem is here?

Thank you

In windows, you need to change the deploy task in 'Build.gradle' (it should be in /lambda-selenium\lambda-selenium-java\build.gradle
it should be
task deploy(type: Exec) {
commandLine 'cmd', '/c', 'sls' , 'deploy'
}
Let me know if this does not work
Thanks and Regards,
RajendraC


Build issue missing reference

Hi @viciousviper ,
I finally know on what you was working :smiley: ! This seems to be amazing and a very nice job !
After building CloudFS without issue, I have some error with the build of DokanCloudFS:
1>------ Rebuild All started: Project: DokanCloudFS, Configuration: Debug Any CPU ------
1>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Composition.AttributedModel". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Composition.Hosting". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Composition.Runtime". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Composition.TypedParts". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CloudDriveFactory.cs(27,14,27,25): error CS0234: The type or namespace name 'Composition' does not exist in the namespace 'System' (are you missing an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CompositionInitializer.cs(27,14,27,25): error CS0234: The type or namespace name 'Composition' does not exist in the namespace 'System' (are you missing an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CompositionInitializer.cs(28,14,28,25): error CS0234: The type or namespace name 'Composition' does not exist in the namespace 'System' (are you missing an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(27,14,27,25): error CS0234: The type or namespace name 'Composition' does not exist in the namespace 'System' (are you missing an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CompositionInitializer.cs(41,25,41,47): error CS0246: The type or namespace name 'ContainerConfiguration' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CompositionInitializer.cs(43,24,43,39): error CS0246: The type or namespace name 'CompositionHost' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CompositionInitializer.cs(37,24,37,39): error CS0246: The type or namespace name 'CompositionHost' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(32,6,32,12): error CS0246: The type or namespace name 'Export' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(35,46,35,101): error CS0246: The type or namespace name 'ExportFactory<IAsyncCloudGateway, CloudGatewayMetadata>' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(37,46,37,96): error CS0246: The type or namespace name 'ExportFactory<ICloudGateway, CloudGatewayMetadata>' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(39,10,39,30): error CS0246: The type or namespace name 'ImportingConstructor' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(40,56,40,111): error CS0246: The type or namespace name 'ExportFactory<IAsyncCloudGateway, CloudGatewayMetadata>' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(40,153,40,203): error CS0246: The type or namespace name 'ExportFactory<ICloudGateway, CloudGatewayMetadata>' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(40,32,40,42): error CS0246: The type or namespace name 'ImportMany' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\GatewayManager.cs(40,129,40,139): error CS0246: The type or namespace name 'ImportMany' could not be found (are you missing a using directive or an assembly reference?)
1>C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\CloudDriveFactory.cs(38,10,38,16): error CS0246: The type or namespace name 'Import' could not be found (are you missing a using directive or an assembly reference?)
2>------ Rebuild All started: Project: DokanCloudFS.Tests, Configuration: Debug Any CPU ------
3>------ Rebuild All started: Project: DokanCloudFS.Mounter, Configuration: Debug Any CPU ------
3>CSC : error CS0006: Metadata file 'C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\bin\Debug\IgorSoft.DokanCloudFS.dll' could not be found
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.CSharp.CurrentVersion.targets(133,9): warning MSB3884: Could not find rule set file "..\..\CloudFileTools\include\TestAssemblies.ruleset".
2>CSC : error CS0006: Metadata file 'C:\Users\liryna\Desktop\DokanCloudFS\DokanCloudFS\bin\Debug\IgorSoft.DokanCloudFS.dll' could not be found
========== Rebuild All: 0 succeeded, 3 failed, 0 skipped ==========

It seems that the reference of System.Composition is wrong.
Otherwise I would be very glad to add your project into the dokany list ofc :) !
DokanOperations seems to be well implemented and well made as first seen.

:+1: work  thank you !
I am testing onedrive, how to configure the authentication ? (encryptionKey)

:+1: work  thank you !
I am testing onedrive, how to configure the authentication ? (encryptionKey)


New rule: no-invalid-default-props

I'd like a rule that errors if anything is in defaultProps that is not also in propTypes.
This came up with the following code:
Component.propTypes = {
  fooValue: PropTypes.string,
};
Component.defaultProps = {
  foo: '',
};

In other words, it was a partially completed prop rename.
This rule should also look up a propTypes variable (Component.propTypes = propTypes) defined elsewhere in the file.

I've taken a stab at this and have a working prototype.  Just trying to get all the tests update for this rule.  If @ljharb or someone else can clarify:  I'm basing off an existing rule but need to write different data into the component list.  Do rules share the same component data or do they each get their own copies?  I see some rules appear to share the same data properties but not sure if they're somehow avoiding stepping on each others toes or if it's just luck that it doesn't conflict.

Also, I considered it a violation of the rule if supplying a default for an .isRequired rule.  Was that your intention or should that be configurable?

That's a good point.
I think that should be an option, but enabled by default. Let's call it allowRequiredDefaults, and default it to false.

Also discovered a bug in require-default-props.  Oops.

I am trying to understand the intention behind the allowRequiredDefaults option and why it defaults to false. Can you provide some insight @webOS101?
Surely this code is okay?
Component.propTypes = {
  name : PropTypes.string.isRequired
};
Component.defaultProps = {
  name : 'John Doe'
};

@sholladay no, that code is not OK - since name is required, the defaultProp will never trigger, so it's redundant - and redundant code should be removed.

That is incorrect. Default props are applied before type checking happens.
From Typechecking With PropTypes:

The propTypes typechecking happens after defaultProps are resolved, so typechecking will also apply to the defaultProps.

I also confirmed that this includes isRequired by playing around with my React app. Admittedly, React is still a bit new to me, so I could be missing something. But this is in line with what I would expect.
Outside of the React ecosystem, code like this is pretty normal...
const currentUsername = 'John Doe';  // something dynamic
const getUser = (username = currentUsername) {
    if (!username) {
        throw new Error('Username is required');
    }
    // return { ... }
}

I definitely think it's a good thing to mark something as required, even if it has a default.

If you pass undefined, defaultProps will be applied, but if you pass null, they will not be.
Conceptually though, if a prop is required, it must be passed - having the defaultProp creates a situation where you could safely omit a required prop, which is a bug. This linting rule helps prevent that bug.

@ljharb is correct, marking a prop as required but using defaultProps to make it optional does not make sense.  Either it is required or it is not.

To each their own, I guess. Thanks for providing an option. I am using isRequired to say that it must have a value, not that the caller of the component must provide one. I'm happy to have a sane default (and to be able to use it) but maybe tomorrow that won't be the case and it will still need a value, so I'm glad to be able to specify these things separately. At the very least, it will make refactoring easier.

Adding a defaultProp ensures it has a value; propTypes are solely about what the user provides.


Taking the number of cores of CPU by user for running CPU hog on a Kubernetes Node

SUMMARY
We have to take the number of cores of CPU by user to run node CPU hog experiment. It will be an optional value to be passed. If the user choose to pass an empty value then the hogging will be done by checking the node CPU capacity (current way)
ISSUE TYPE

Feature request

COMPONENT NAME

Chaos Experiment

ADDITIONAL INFORMATION
The number of cores of cpu will be passed as environment variable from job. There will be a separate util for taking the cpu core values from node capacity and will be called only when an empty value is passed  while running the job.

Fixed by #1357


Zero effect on channels

Project Robyn
Hello! When using Robin, there is always an effect that one or more channels show a zero effect.

Here is some information on this case :

data with weekly granulation for 2 years
rolling window = 1 year (2022-2023)
paid_media_vars are equal to spends, because I cannot collect impressions for all the spend channels (it should work in this setting as well, right?)
Report is being picked from the experiment with 5 trials, 2k iterations. Majority of reports (models) share same effect or huge intercept value
Channel 5 (zero effect)
No gaps in spends, no zero values
Doing 40 trials and 500 iteration like recommended in another issue Share of effect as zero #160 doesn’t help
Also tried experiment with 5 trials, 8k iterations -  doesn’t help too

Interesting cases:

If I remove (multiply by zero) spends in this channel in last 3 weeks (points) (1% of spends in this channel) the zero-share effect disappears
zero-effect appears in experiments with different target metrics (revenue/conversion)
I tried different approaches on ROI calculations (D1/W1/M1...)
I noticed that zeroing occurs at the decompMedia stage
Removing channel spend data from data set doesn’t remove zero-effect channel: once you remove a particular zero-effect channel this effect appears in another
There were thoughts on L1 regularization, but following final formula there is L2 regularization. There still can be same problem, if spends for this channel are constant, but they are not. Spend std is even not the minimal among the dataset.

-

Hi @RomanRudnitskiy thanks for sharing your analysis.
We are about to deploy a new penalizing system when calculating DECOMP.RSSD in which models with more coef-0 media variables are penalized and models with no coef-0 media are not, that way we can minimize these scenarios.

Closing this task now. Feel free to reach back anytime.


fix: Use directories without index if defined elsewhere

Fixes #11
This was the smallest change I could come up with in the current structure. A more semantically correct implementation would probably be to add support for multiple paths in the theme struct but that caused a lot more changes for what I think is only an academic difference.

@oknozor  Could you please approve this pr ? It can fix an issue I have.

Never mind, I have icons in ~/.local/share/icons but even with this fix it still doesn't work :(

Never mind, I have icons in ~/.local/share/icons but even with this fix it still doesn't work :(

Did you check that ~/.local/share is in XDG_DATA_DIRS?

Hey, thanks to this is solved @wash2, also it's no longer needed to set XDG_DATA_DIRS manually.


Documentate the usage of null values

Ignore TravisCI
Just disabled it from running on those documentation pull requests.


Documentation

Need documentation on how to build it and package it
Need documentation on dependencies
Need documentation on how to translate/add another language.
Need documentation on how to do basic branding/logo change

Done for now but I'm sure we will continually update them as time goes on

Overview - Why and How it works.
Configuration and Provisioning on BroadWorks UC-One

Configuring BroadWorks for UC-One Phone for Chrome
Provisioning Users for UC-One Phone for Chrome

From Joe Baird:
i haven't read through everything, but do we have the BroadWorks dependancies, R20, the WRS version and patch level, device type, dms config, etc.?

@remlap42 Can you write something up concerning this comment for the docs? "i haven't read through everything, but do we have the BroadWorks dependancies, R20, the WRS version and patch level, device type, dms config, etc.?"

All of this is covered in the section on Configuring BroadWorks.
https://github.com/BroadSoft-Xtended/Product-Phone-for-Chrome/blob/master/documentation/BroadWorksConfiguration.md


Cannot extract multi-channel waveform data from smr file

I am now trying to extract waveform data from the SMR file. I have attached the SMR file and the plot using Spike2. With Splike2, I can clearly see six waveforms in different channels. The start time and duration of those waveforms are different. However, after reading the SMR file in Python (using Python 3.6 with Spyder 3.2.8), I cannot extract and save them after reading the saved Mat file.
I will really appreciate any help.
Jie
smr file.zip
.
The code I use is shown as follows.
create a reader
reader = Spike2IO(filename=filePath)
read the block
bl = reader.read(lazy=False)[0]
print(bl)
access to segments
for seg in bl.segments:
print(seg)
for asig in seg.analogsignals:
print(asig)
for st in seg.spiketrains:
print(st)
save to Mat file
w = NeoMatlabIO(filename='convertedfile.mat')
blocks = reader.read()
w.write(blocks[0])

If you have neo 0.6 you should try this:
reader = Spike2IO(filename=filePath)
bl = reader.read_block(load_waveforms=True)

Hi Garcia,
Thank you so much for the response. I have used your suggested code. The reader information is shown as follows.
Block with 1 segments, 9 channel_indexes
annotations: {'system_id': 6}
file_origin: 'E:/Data/DTGPMR_June17/4126/DTMR_4126_0000.smr'
segments (N=1)
0: Segment with 1 events, 9 spiketrains
annotations: {'system_id': 6}
analogsignals (N=0)
Then, I converted the smr to mat file as follows.
w = NeoMatlabIO(filename='convertedfile.mat')
w.write(blocks)
In the saved file "convertedfile.mat", I can successfully find the time index information for the nine channels, but still no waveform information. Could you please help me fix this？
Many thanks,
Jie

You also foget the load_waveforms=True in your second example:
reader = Spike2IO(filename=filePath)
blocks = reader.read(load_waveforms=True) # <<<<<< Here
w = NeoMatlabIO(filename='convertedfile.mat')
w.write(blocks)

Many thanks for your response. I have modified the code as follows.
blocks2 = reader.read(load_waveforms=True)
w2 = NeoMatlabIO(filename='convertedfile2.mat')
w2.write(blocks2[0]) # there will be an error without [0]
or
reader = Spike2IO(filename=filePath)
blocks = reader.read_block(load_waveforms=True)
w = NeoMatlabIO(filename='convertedfile.mat')
w.write(blocks)
Both can achieve the same results including the waveform. But the obtained waveform is not what I want. I wish to extract those green waveforms as I draw in the attached figure, which are cricket calls with a duration of 30 seconds. Could you please help me check the file and give some advice？
Many thanks,
Jie

So load_waveforms is now working but, this is not the waveforms you want.
Could you explore all segment and all spiketrains to be sure that the one want is not there.
The shape of the waveforms is indeed strange(7627,1,3).

7627 is the number of spike (or snippet in your case)
1 is the number of channels
3 is the number of sample
3 seems very low.
Could have in spike2 program the exact sample_width it should be ? Is it something you parameters before acquisition or after (during processing).

Same situation as #564.

@Jerry-Jie-Xie : could you test with actual master ti check is the situation is still the same ?

@Jerry-Jie-Xie We think this is fixed. Please could you install the Neo master branch (let us know if you'd like some guidance for this) and check if the problem is still there?


🔧 Update template

This pull request merges the current state of the template used here into this project so that it is up to date.

:tada: This PR is included in version 2.0.7-develop.3 :tada:
The release is available on:

v2.0.7-develop.3
GitHub release
Docker container (sebbo2002/fileee-backup-downloader:2.0.7-develop.3)
v2.0.7-develop.3

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.7 :tada:
The release is available on:

v2.0.7
GitHub release
Docker container (sebbo2002/fileee-backup-downloader:2.0.7)
v2.0.7

Your semantic-release bot :package::rocket:


Feature/avatar animations

Adding an animate prop to avatar, which will give it a lovely animation on render!

 UX Issue: It's easy to miss when people connect to the item I'm on


Add push() method to gather data that needs to be pushed, not set within the dataLayer

I just hit a case where I was required to use dataLayer.push() even on initial page render, so I added a pushDataLayer collection that gathers these and emits any that have been collected during view render.  Thought I'd pass it along if you wish to incorporate it.

Agree...this should be merged. Push is better for events

Sorry, this PR seemed to have slipped passed me!
Merged and released in v2.3.0.

Sweet, thanks


[SUPPORT] EMR job stalls indefinitely after clean (hudi 0.14.0,EMR serverless 6.12.0)

Maybe you have some insight on if this is a 0.14.0 & EMR compatibility error or something that is happening due to some other issue with updates in cleaning? I'm not having the same issues when using 0.13.1.
I am running multiple consecutive Spark jobs on EMR serverless, each iteration writes (inserts) data to the same Hudi tables.  I have not set any cleaning configurations. The clean runs by default on the 12th job (after the job with the 11th commit), where one parquet file is cleaned and the job is successful. The subsequent, 13th job run stalls after completing the first table (lets say table1). Table1 is completed, a parquet file is written to S3 and /.hoodie folder has the corresponding commit as well, but the job does not move on to further tables, it seems like it stops while trying to read the table1 .clean file.
To Reproduce
Steps to reproduce the behavior:

Submit n jobs to EMR serverless where data is written to hudi tables until clean happens (with spark.jars=hudi-spark3.4-bundle_2.12-0.14.0.jar,)
Submit another job to write to the hudi tables

Expected behavior
All hudi table writes are completed, job does not stall.
Environment Description
Hudi version : 0.14.0
Spark version : 3.4.0
Hive version : 3.1.3
Hadoop version : 3.3.3
Storage (HDFS/S3/GCS..) : S3
Running on Docker? (yes/no) : no
Logs
The last Spark driver log entry:
23/11/09 11:12:11 INFO TaskSchedulerImpl: Removed TaskSet 36.0, whose tasks have all completed, from pool  23/11/09 11:12:11 INFO DAGScheduler: ResultStage 36 (collectAsMap at HoodieSparkEngineContext.java:164) finished in 0.174 s 23/11/09 11:12:11 INFO DAGScheduler: Job 16 is finished. Cancelling potential speculative or zombie tasks for this job 23/11/09 11:12:11 INFO TaskSchedulerImpl: Killing all running tasks in stage 36: Stage finished 23/11/09 11:12:11 INFO DAGScheduler: Job 16 finished: collectAsMap at HoodieSparkEngineContext.java:164, took 0.176789 s 23/11/09 11:12:11 INFO MapPartitionsRDD: Removing RDD 28 from persistence list 23/11/09 11:12:11 INFO BlockManager: Removing RDD 28 23/11/09 11:12:11 INFO MapPartitionsRDD: Removing RDD 38 from persistence list 23/11/09 11:12:11 INFO BlockManager: Removing RDD 38 23/11/09 11:12:11 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/hoodie.properties' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/hoodie.properties' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/metadata/.hoodie/hoodie.properties' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/hoodie.properties' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/hoodie.properties' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/metadata/.hoodie/hoodie.properties' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/20231109104515015.clean' for reading 23/11/09 11:12:12 INFO S3NativeFileSystem: Opening 's3://path/table1/.hoodie/20231109104515015.clean' for reading 23/11/09 11:13:09 INFO EmrServerlessClusterSchedulerBackend: Requesting to kill executor(s) 2 23/11/09 11:13:09 INFO EmrServerlessClusterSchedulerBackend: Actual list of executor(s) to be killed is 2 23/11/09 11:13:09 INFO ExecutorContainerAllocator: Set total expected execs to {0=0} 23/11/09 11:13:09 INFO ExecutorAllocationManager: Executors 2 removed due to idle timeout. 23/11/09 11:13:09 INFO TaskSchedulerImpl: Executor 2 on [2600:1f10:4da5:c701:aee8:3b04:2e94:3eab] killed by driver. 23/11/09 11:13:09 INFO DAGScheduler: Executor lost: 2 (epoch 8) 23/11/09 11:13:09 INFO ExecutorMonitor: Executor 2 is removed. Remove reason statistics: (gracefully decommissioned: 0, decommision unfinished: 0, driver killed: 1, unexpectedly exited: 0). 23/11/09 11:13:09 INFO BlockManagerMasterEndpoint: Trying to remove executor 2 from BlockManagerMaster. 23/11/09 11:13:09 INFO BlockManagerMasterEndpoint: Removing block manager BlockManagerId(2, [2600:1f10:4da5:c701:aee8:3b04:2e94:3eab], 37605, None) 23/11/09 11:13:09 INFO BlockManagerMaster: Removed 2 successfully in removeExecutor 23/11/09 11:13:09 INFO DAGScheduler: Shuffle files lost for executor: 2 (epoch 8)

@annilort To explain, after one clean operation is successful,  next write is getting stalled after it commits successfully. Did you tried with OSS 0.13.1 version or EMR 0.13.1 Hudi version if same thing happens there.

@ad1happy2go  Hi, yes, I tried with EMR 0.13.1 Hudi version, the same thing does not happen. And yes, one clean operation is successful, then the next write for the first table commits successfully, but then stalls and does not reach other tables. This also happens when the job has only one table, the commit is successful, but then the job stalls without finishing.

cc @CTTY - Can you please help here if you have any insights.

I believe this is the problem: #8583
Spark won't be happy if cleaner is shutdown with System.exit(1)
I'll post a PR for you to test out soon.
Off the topic: Using Hudi 0.14.0 on EMR 6.12 that only supports 0.13.1 is not recommended for production use. I expect it to be working for most cases though.

Hi @annilort , please try the patch here: #10108

@annilort Did this patched helped. As this is merged too, Feel free to close the issue if you are good with this. Thanks.


Type coersion for 32-bit platforms

The result type of strlen changes with word size, but
mysql_stmt_prepare's third argument is fixed as an unsigned long.  This
explicitly coerces the type to match.  On 64-bit it's optimized away.

Awesome, thanks! You can merge this if Travis passes.

1.0.1 tagged: https://github.com/vapor/mysql/releases/tag/1.0.1


Add event handling for explicit euler solver

See PR #36  for a simple version of event handling without root finding for zero-crossings.


Update README with more detailed instructions

Incomplete instructions, the webserver starts properly but it doesn't create a game position

I tried generating and also running the initial data SQL but couldn't make any positions

@gtzampanakis Could you point me in the right direction please? I wanted to help service #1