Skip to content
This repository has been archived by the owner on Jun 18, 2019. It is now read-only.

Adds build VM and corresponding Makefile #6

Merged
merged 12 commits into from
Aug 8, 2016
Merged

Adds build VM and corresponding Makefile #6

merged 12 commits into from
Aug 8, 2016

Conversation

conorsch
Copy link
Contributor

@conorsch conorsch commented Aug 5, 2016

Creates a Vagrantfile and lightweight Ansible playbook for running the build process inside an Ubuntu 14.04 Linux VM. Now, running make build will handle the entire build process for Linux packages.

Updated the README to include the new npm run dist command, which still must be run manually (not in automation) for the OS X platform. @GabeIsman can you confirm that the restructured README is still accurate for OS X builds? Also, if you have any thoughts on building for all platforms within the VM, I'm all ears.

Closes #5.

Conor Schaefer and others added 12 commits August 3, 2016 16:02
Trusty dusty 64, good enough for a start. The 14.04 LTS release is
showing its age, but it's mostly useful for the automatic mounting of
the /vagrant directory, which is currently broken in the 16.04 vagrant
image.

Ignores .vagrant directory, since it's only used for local VMs,
and should never be committed to version control.
Will use an external role for configuring NodeJS, and the internal role
will handle building the application.

Ignores the external Ansible role geerlingguy.nodejs, as well.
Convenient wrappers for bootstrapping the Ansible dependencies,
creating the build VM, and running the build process. The build process
is currently failing on the 'npm run build-app' command; working on it.
Currently resolves to 4.4.7, which is an LTS and strongly recommended
"for most users" on the nodejs.org homepage.
Two npm modules seem to be required at the site-wide level:

  * cross-env
  * webpack

In particular, the build scripts expect `cross-env` to be found in PATH.
The other app-level dependencies can be installed locally to the project
root, which is in /vagrant in the build VM.
Several development libraries are required to build the electron app
under Linux. Installed.
More accurately describes what the task is doing, and is also consistent
with the npm subcommands declared in package.json.
The geerlingguy.nodejs role kindly sets up environment config in
/etc/profile.d, which is great for interactive sessions, but Ansible
will ignore those when running the `command` module to keep the env
slim. To use that info, we'll declare a var with all the environment
variable we want, and stick that on each task requiring it.
There wasn't any useful information in there anyway.
The new `npm run dist` command made it into the package.json file
already, but the docs were still recommending the old commands. Updated
the README with reference to the Makefile, but that only builds Linux
packages in the Linux VM.
@GabeIsman
Copy link
Contributor

LGTM.

I haven't looked into getting cross platform builds working, but I did read a couple of opinions warning that it's probably not worth the hassle (at least for windows).

With the tools we are currently using, this issue appears to be blocking building the .dmg on the build vm.

Getting linux builds working on OSX is way easier, not super helpful though.

@GabeIsman GabeIsman merged commit 4abee3f into master Aug 8, 2016
@conorsch
Copy link
Contributor Author

conorsch commented Aug 8, 2016

Thanks for linking to LinusU/node-appdmg#14, that's just the magic I was looking for. Subscribed to that thread.

@FredericJacobs FredericJacobs deleted the build-vm branch August 9, 2016 01:45
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants