Skip to content

Instantly share code, notes, and snippets.

@maxlinc
Created June 2, 2014 22:20
Show Gist options
  • Save maxlinc/d259963f0e6e7f5806e5 to your computer and use it in GitHub Desktop.
Save maxlinc/d259963f0e6e7f5806e5 to your computer and use it in GitHub Desktop.
Mapping the travis build environment to windows

I'm trying to take the current Build Environment documentation and see what is applicable on Windows. This is obviously a moving target, and my goal isn't necessarily to keep this up to date as much as it's to get an initial ideal of what does and doesn't make sense on Windows.

This might be better as a wiki or some other collaborative document, but I didn't see a wiki and don't know if you use something else, so I created an issue.

Common Environment

Networking

I'm not sure anything special is needed for IPv6 support, but I think it's not part of an MVP. There are plenty of projects that could test on windows with ipv4 only.

Version Control

Linux Windows Notes
git git
mercurial mercurial
subversion subversion

(P.s. I already have a working Chef script for all 3... woohoo!)

Team Foundation Version Control is also popular on Windows, but I don't think it should be part of the initial Windows effort.

Compilers

Linux Windows Notes
GCC
Clang
make
autotools
cmake
scons
go go Travis-CI hacks related to GOPATH likely needed for Windows

I don't think most of these are applicable, unless you run MinGW or Cygwin. I'm trying to avoid that or at least save it as a last resort if progress is slow on "pure Windows" workers.

Visual Studio Express including msbuild is probably desirable, but perhaps C# will be a separate effort.

Networking tools

Linux Windows Notes
curl PowerShell
wget PowerShell
OpenSSL PowerShell
rsync Not sure :\

Again, probably not applicable unless MinGW or Cygwin are used.

I put PowerShell because most of the things you'd usually do (downloading files w/ curl/get or creating certificates with OpenSSL) can be done with PowerShell.

Runtimes

Linux Windows Notes
Ruby (rvm) Ruby (uru?)
OpenJDK (update-alternatives?) OpenJDK (??) Not sure about a switcher on Windows, or if one is necessary
Python (virtualenv) Python (virtualenv)
Node.js (nvm) Node.js (??) nodist?
Go Go Go workarounds on Linux need to be ported

Data stores

Linux Windows Notes
MySQL Supports windows
PostgreSQL Supports windows
SQLite Supports windows
MongoDB Supports windows
Redis Redis does not support Windows, but MS Open Tech maintains an unofficial port
Riak Riak is on Azure, but recommended server is CentOS
Cassandra Supports Windows
Neo4J Supports Windows
ElasticSearch Supports Windows
CouchDB Supports Windows

Although all of these seem possible, I'm not any of them should be part of an MVP. Applying the pareto principle (80/20 rule) might make sense though I don't know which 20% to target.

Messaging

Linux Windows Notes
RabbitMQ Supports Windows
ZeroMQ Supports Windows

Headless Browser tools

Linux Windows Notes
xvfb I don't think it's applicable
PhantomJS Supports Windows

Environment variables

Looks fine, except for HOME

Libraries

Linux Windows Notes
OpenSSL Available for Windows... is it commonly used?
ImageMagick Available for Windows

Language specific

I added the version manager to the list of runtimes above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment