Native Spoon Chrome Extension now online!

Spoon is now available as a native Chrome Extension!

The new extension is automatically used when Spoon.net is accessed from Chrome browsers. The extension is hosted in the Google Chrome Store.

This replaces the previous NSAPI-based Chrome extension that was deprecated with Chrome 42. With the new native extension it is no longer necessary to use any workarounds to use Spoon.net.

Enabling the Spoon Plugin in Chrome 42

Starting with Google Chrome 42, the NPAPI plugin interface is disabled by default. Since the Spoon browser plugin currently uses NPAPI, this prevents the plugin from functioning.

A Chrome-compatible update for the Spoon plugin is coming soon. In the meantime, you can use the following workaround to enable NPAPI plugins in the Chrome browser settings.

1. Enter chrome://flags/#enable-npapi in the address bar and press Enter.
Google Chrome 42
2. Find ‘Enable NPAPI’ and click on the Enable link.
Google Chrome 42
3. Restart Google Chrome.
Google Chrome 42
4. Enable the Spoon Plugin.
Google Chrome
5. Run some containers!
Spoon Containers

Now that was easy!

Spoon Plugin for Jenkins

It’s now even easier to integrate Spoon containers into your existing Jenkins-based continuous integration process. The new Spoon plugin for Jenkins allows Jenkins to automatically build Spoon images and push them to the Spoon.net Hub or local repository.

The Spoon Jenkins plugin is available free of charge and has been open sourced on GitHub:

Download the Jenkins plugin (Sources on GitHub)

The Spoon Jenkins plugin includes the following capabilities:

  • Build an image with SpoonScript
  • Push the resulting image to the Spoon.net Hub
  • Export an image to the local repository
  • Trigger a build job using webhooks

Build an image with SpoonScript

  1. Create a new Jenkins item and select Build a Spoon project as its type.
    jenkins_project_configure_1
  2. Add Execute SpoonScript build step.
    jenkins_project_configure_2
  3. By convention, the default name for a SpoonScript file is spoon.me. It should be located in the Jenkins project workspace which corresponds to the root directory of a GitHub project.
    jenkins_project_configure_3
  4. Write a SpoonScript to define how a new image should be created. For more information about SpoonScript refer to the language reference or take a look at sample scripts in GitHub.
  5. Provide credentials to a Spoon.net account. If no credentials are provided, the SpoonScript will be run as the currently logged on user.
    jenkins_project_configure_4
  6. For enterprise deployments you may be interested in building images that target a specific version of the Spoon VM. To gain access to this and other optional settings, click Advanced button.  For more information about specific options, click buttons with help content or refer to the online documentation.
    jenkins_configure_5
  7. Save your changes and test the script by triggering the job manually. In the next sections you will learn how to push new images to the Spoon.net Hub.

Push an image to the Spoon.net Hub

Pushing images to the Spoon.net Hub is available as post-build action:

jenkins_push

There are three options for naming the new remote image:

  1. Use the same name as the local image.
  2. Generate the remote image name from the Git information for your project (organization, project, branch, and current head version). Note that you cannot publish images from an organization to which you do not belong. For example, if your Spoon.net account name is JimmyKimmel then you won’t be allowed to push images as OprahWinfrey.  If this is required, then overwrite the name of the GitHub organization with your account name.
    jenkins_push_overwrite_organization
  3. Use a fixed remote image name hardcoded in the job definition. Optionally, you may append a suffix from the date and time in order to keep old images available in the Spoon.net Hub.
    jenkins_push_fixed_image_name

Export an image to the local repository

Exporting images to the local repository is available as post-build action:


jenkins_export_image
jenkins_export_image_outputfile

Remove an image from the local repository

New images will remain in the local repository unless they are deleted using the spoon rmi <image_name> command. This step can be included in the job definition using the post-build action Remove local Spoon image.

jenkins_remove_local_image

Trigger a build job using webhooks

You may decide to build a Spoon container image whenever the source code changes for your project.  To facilitate this, a Spoon Jenkins job can be triggered using an HTTP POST request.  The request content is required to be compatible with the structure of GitHub webhook events.

jenkins_webhook_setup

Webhook messages are sent to Jenkins_URL/spoon-webhook endpoint as POST with Content-Type set to application/x-www-form-urlencoded.

jenkins_webhook_endpoint

Enjoy and please send any feedback or questions to @spoonapps!

Virtualization Review: App Virtualization Key for Windows Server 2003 Migrations

Virtualization Review highlights Spoon as a solution for customers needing to upgrade applications
following the end of Microsoft support for Windows 2003 on July 14, 2015.

They suggest that Windows applications can be easily and smoothly moved over to a new operating environment without requiring changes to the applications themselves. Is it time for companies still waiting to migrate to pay attention and take this approach?

Recently, I’ve had conversations with Kenji Obata, CEO of Spoon, about migrating desktop applications… [Obata] can point to a large number of customers who have successfully made the transition and are now breathing a sigh of relief. The customers can then take their time working on a reasonable, cost-effective transition strategy rather than feeling like they’re under the gun to move quickly.

Read the entire article here

NEW: Continuous Integration on Spoon.net

Spoon.net is now continuously integrating popular web browsers, programming languages, servers, build tools, test frameworks, and other applications directly into the Spoon Hub!

Spoon CI provides users with instant, containerized access to the latest versions to 40 of the most popular desktop applications, servers, and tools from around the web. Spoon CI automatically detects when new versions of these applications are available and creates Spoon images automatically using SpoonScript.

For example, developers can now test drive the latest, bleeding edge Chromium Canary or Firefox Nightly build in an isolated environment, with nothing to install or uninstall. And other key servers and tools ranging from Apache, Nginx, and NUnit to NuGet, Grails/Groovy, and WordPress are always up-to-date.

SpoonScripts for all of these automated builds have been open sourced on GitHub. You can view them or submit your own at https://github.com/spoonapps/spoonme.

And soon you’ll be able to define personal containerized CI tasks for personal use or as part of Spoon Teams. Stay tuned and remember to follow us at @spoonapps for the latest news!

Spoon Hosted CI Projects

Browsers

Languages and Frameworks

Servers

Build and Configuration Management

Test

Tools

Web Applications

 

Santos Achieves Enterprise Application Continuity with Spoon

Santos, a major Australian energy producer, came to Spoon needing a way to allow their employees to continue using a critical Oracle Hyperion business system across a company-wide desktop operating system upgrade. They implemented a Spoon solution for over 2,0000 desktops based on Spoon containerization. Santos Senior Desktop Systems Engineer Andrew McAlpine describes the outcome:

Our Oracle Hyperion went in Monday night, after a lot of work was done to migrate the back end. Has been a resounding success!

We’ve also implemented a Spoon’d version of a complex suite of engineering related software, one that has a .NET 4.5 incompatibility. Adding .NET 4.0 to the container was a breeze and our deployment has become a much easier proposition.

We’re now working on Access 2010 and Excel, which will allow us to move forward with updates to our SOE while maintaining some critical business functions that can’t move with for the time being.

Rabbit out of a hat, your product has been a revelation for us.

Spoon Server 3.5.231 now available!

This Spoon Server update incorporates numerous reliability improvements as well as the following new features:

  • Integration with the latest Spoon VM and Spoon Client components (see here for VM and Client update details)
  • Support for SSL certificate chain files
  • Configurable authentication token timeout periods
  • Significantly improved portal performance

In addition, Spoon Studio has been updated to patch version 12.0.340.16 to fix regressions in the previous patch update.

Spoon Server users on an active maintenance contract can access the latest Spoon Server by logging into their Spoon.net account.

This update is strongly recommended for existing users as it incorporates numerous virtual machine compatibility fixes. For customers that need to renew maintenance, please contact the Spoon Sales Team for a renewal quote.

New in Spoon 3.33.8.527

The latest version of the Spoon Client includes the following new features and updates:

  • Compatibility updates for Windows 8.1!
  • Containers automatically request escalation if required. The –admin flag is no longer required.
  • Support for NTLM and Kerberos authenticated proxies
  • Support for IPv6 container links
  • New spoon inspect command displays container contents
  • New –using flag in the run command allows layering of temporary images
  • Can now use directory tokens (such as @DESKTOP@) within –mount path specifications
  • Simplified –mount command allows a single parameter if both source and destination are the same
  • Name and version resolution behavior is now consistent across all commands
  • SpoonScript includes ability to clear environment variables

This update also includes patches for the following bugs and compatibility issues:

  • Crash while running Microsoft SQL Server 2008
  • IIS Express could fail to correctly serve static files
  • Compatibility with Java diagnostic tools such as jps and jstack
  • Incomplete or incorrect stdout and stderr stream captures
  • Incorrect command-line parsing in some cases when using  command-line flags
  • Improved command-line error handling and reporting
  • UDP port routes could be incorrectly interpreted as TCP
  • Fixes for environment variable isolation behavior
  • Improved status reporting during image synchronization
  • Fixes for intermittent image synchronization errors

The component versions in this release are:

  • Command processor: 1.4.1045
  • Spoon VM: 11.7.8

Spoon Studio 12 Released!

We’re happy to announce the release of Spoon Studio 12!

This release includes critical compatibility updates for Windows 8.1 as well as many performance and usability improvements, including:

  • Support for Windows 8.1!
  • Improved compatibility with with anti-virus software (stub executable path selection)
  • Improved Service Control Manager virtualization, including ability to “net start” and “net stop” within the virtual environment
  • Fixed resolution of registry conflicts when importing registry keys into a configuration
  • Improved error messages for configuration errors
  • Compatibility fixes for SQL Compact Edition

Spoon customers on an active maintenance contract can retrieve their Spoon Studio 12 license by logging into their Spoon.net account.

For customers that need to renew maintenance, please contact our sales team for a renewal quote.

Containerized Selenium Testing

Using containers, setting up and running a Selenium Grid has become a breeze. This lets you focus on your tests, not the challenges of Selenium Grid setup.

The Problem

We’d like to test our web application using multiple versions of Internet Explorer, Firefox or Chrome, in an automated manner, using Selenium.

The usual route to go is to setup a Selenium Grid and add multiple machines as nodes, each having a different version of Internet Explorer, Firefox or Chrome installed.

While this works, there are several important drawbacks:

  • It is necessary to setup and maintain multiple machines
  • Tests execute slower due to network latency between grid nodes
  • Troubleshooting tests requires connecting remotely to each node

Containers to the Rescue!

Using containers, we eliminate all of these problems. No setup is required and the entire Selenium Grid can be run on a single machine — even locally on the developers’ own boxes!

First, lets launch the Selenium Grid using a Spoon container:

spoon try base,selenium-grid

Here we are using the try verb since we want to dispose of the test environment when execution is completed.

Then we launch the nodes we want to test with. In this case, I picked IE9 and IE10:

spoon try base,spoonbrew/ie-selenium:10,selenium-grid-node node ie 10
spoon try base,spoonbrew/ie-selenium:9,selenium-grid-node node ie 9

That’s it! The grid is ready and we can launch our tests pointing to the URL http://localhost:4444.
Screen Shot 2015-01-08 at 14.08.20
Screen Shot 2015-01-08 at 14.13.46
Note that the command-line interface also makes it very easy to script node and grid launches, for example as part of an automated build system.

Web Interface

If you’d rather not use the command line interface, there’s also a complete web interface available at http://spoon.net/selenium.

The Spoon Selenium interface offers a simple one-click launch of an entire Selenium Grid:

selenium-commands-and-screenshots-running-tests

The web interface also allows you and your teammates to view and share logs of test executions, including Selenium commands and screenshots of the executing tests:

view-all-nodes

Thanks for reading and hope you enjoy the new containerized Selenium Grid on Spoon.net!