Skip to content

Instantly share code, notes, and snippets.

@Azolo
Created May 24, 2012 17:46
Show Gist options
  • Save Azolo/2783045 to your computer and use it in GitHub Desktop.
Save Azolo/2783045 to your computer and use it in GitHub Desktop.
Travis-CI on Windows stuff

Travis CI on Windows (Box Building)

Why not use Vagrant?

  • Bare Box takes 20 minutes to Build
  • While licensing itself is not an issue, activation is
    • Boxes would require maintiance every 30 days and rebuilding every 120 days
  • No easy remote commands
    • ssh is through cygwin and cygwin doesn't present a clean environment
    • winrm is a HUGE PAIN if you're not on an Active Directory Domain
  • Bare Box is HUGE (7 gigs with nothing installed)
  • Box building isn't possible with VeeWee (no ssh)
    • Unattended Windows Installation is pretty good (this might be worth looking into)

Windows Azure Worker Role (PaaS)

Advangtages

  • On demand VMs
  • No building Boxes
  • Windows "like" environment

Disadvantages

  • Only Windows Server 2008
    • Not a big deal
  • Windows "like" environment
  • Built for static applications
  • Hard to install applications
  • Not a lot of documentation on tasks Travis-CI would need to perform

What do you mean Windows "like" environment"?

The environment itself looks, acts, and actually is a Windows environment, just not a Windows environment setup like I would expect on a normal Windows Box. (In other words, I don't know how to make things work)

After the Meet Windows Azure event, it was announced that the VM Role would become much more of a IaaS product.

Advantages

  • Microsoft provides bare Windows Server 2008 (and 2012) boxes
    • Plus some supported Linux distros
    • No HUGE box uploads (seriously this is awesome)
  • Boxes are persisted! (IaaS)
    • Also, boxes state can be saved as an windows image (sysprep) for other boxes
  • Custom Tailored Windows boxes

Disadvantages

  • Still not easy to remote into
    • However, can join a Active Directory during VM provisioning
      • Setup and maintenance would require some knowledge into Microsoft technologies
  • Currently a lot of the VM management is handled by Vagrant, that wouldn't be possible in this situation
    • knife-azure looks promising, but many of the Windows machine configuration options don't appear to be present

I'm focusing on my efforts VM Role

So, What Now?

Well, here's the deal. I haven't set the time aside to figure out how to put this altogether.

  • A lot of the functionality in Travis-Worker isn't designed for this type of environment
  • chef recipes need to be added for Windows
    • Likewise we need to figure out how to script box setup
  • Need to figure out how to correctly setup the Active Directory Domain Services
    • This is crucial for remote commands *
    • The Active Directory Domain Controller would likely be the system that run Travis-Worker as well
  • Use Virtual Networks to allow machines to communicate
    • Maybe not necessary
      • I understand networking well enough that it actually makes it easier
      • Other people may not

I'll try to keep this updated the more I find out.

[ * ] Ok, maybe not crucial for remote commands. However, crucial for my sanity and overall well being.

Also I suck at markdown

@sundhaug92
Copy link

Could Windows containers/Hyper-V containers be a solution for this? That'd support Windows Server 2016 (which is essentially Windows 10, either core or nano)

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