Skip to content
Tim Caswell edited this page May 4, 2015 · 9 revisions

Luvi is currently built using a semi-automated set of build bots in @creationix's office.

If you wish to setup your own, the process is fairly simple.

  • Install ninja onto your system if it's not windows. It's ninja-build on some debian based systems. Also you'll probably need GCC or clang, whichever is native to your platform.
  • If it's windows, install the community edition of visual studio and make sure to get the version made for desktop apps as that's the one that comes with a C compiler.
  • Install cmake. This is pretty easy cross-platform
  • Install github-release. They have binaries for most platforms, but for others, you need to first install go and then build it using go. On raspberry PIs I use pre-built go binaries.
  • Do a recursive clone of luvi and run git describe in the checkout to make sure you have the version you expect to be building.
  • Create en environment variable GITHUB_TOKEN that contains an api token capable of pushing to the luvi project. (Tokens can be created at https://github.com/settings/applications/new)
  • If using ninja, create an environment variable GENERATOR that holds the string Ninja.

Then to make a release:

  • do the normal changelog and push an annotated and signed tag to the luvi repo.
  • Go to the luvi releases page and edit the release. I copy the text from the tag containing the changelog and paste it into the description of the release you're creating.
  • run make publish-src from one machine (usually my macbook that's also building the darwin binary)
  • then run make publish on the other bots (make sure to git pull and git describe to make sure you're building what you expect to be building). On some systems like solaris or freebsd, you'll need gmake publish instead of make publish.

Supported platforms:

Currently @creationix builds every luvit release on the following platforms:

  • Windows 8.1 amd64
  • Ubuntu 14.04 x86_64
  • Ubuntu 14.04 i686
  • OSX 10.10 x86_64
  • Raspbian armv6l (raspberry pi A+)
  • Raspbian armv7l (raspberry pi 2 B+)
  • FreeBSD 10.1 amd64
Clone this wiki locally