You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ma...@apache.org on 2014/08/19 20:50:55 UTC

svn commit: r1618931 - in /cordova/site: ./ README.md Vagrantfile vagrant/ vagrant/cordova-website-user-stage.sh vagrant/cordova-website.sh

Author: marcelk
Date: Tue Aug 19 18:50:54 2014
New Revision: 1618931

URL: http://svn.apache.org/r1618931
Log:
CB-7337 Get a Vagrant VM working

...to make it easier to set up all the dependencies. Now you can do
`rake build` and `rake serve` from the VM, and access both the generated
files on the filesystem and the port 4000 http server from your bare-metal
workstation.

Added:
    cordova/site/Vagrantfile
    cordova/site/vagrant/
    cordova/site/vagrant/cordova-website-user-stage.sh   (with props)
    cordova/site/vagrant/cordova-website.sh
Modified:
    cordova/site/   (props changed)
    cordova/site/README.md

Propchange: cordova/site/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Aug 19 18:50:54 2014
@@ -1,2 +1,4 @@
 Gemfile.lock
 staging
+.vagrant
+node_modules

Modified: cordova/site/README.md
URL: http://svn.apache.org/viewvc/cordova/site/README.md?rev=1618931&r1=1618930&r2=1618931&view=diff
==============================================================================
--- cordova/site/README.md (original)
+++ cordova/site/README.md Tue Aug 19 18:50:54 2014
@@ -6,13 +6,28 @@ Get the source code
 
     $ svn checkout https://svn.apache.org/repos/asf/cordova/site cordova-website
 
-Installing Ruby Dependencies
+Installing Dependencies
 ----------------------------
 
-    curl -sSL https://get.rvm.io | bash -s stable
-    rvm install ruby-1.8.7-p374
-    gem install bundler
-    bundle install
+This is all handled for you now via a VM and Vagrant. Similar to cordova-docs,
+install Vagrant and VirtualBox if you haven't already done so, then:
+
+    $ cd cordova-website/
+    $ vagrant up
+    $ vagrant ssh
+    $ cd /vagrant
+
+Then you can continue with `rake build` as described below, and the output
+will be generated in the shared directory. You should do your
+svn commands outside of the VM, so that you aren't required to set up your
+svn credentials inside the VM. You can also do `rake serve` in the VM,
+and open "http://localhost:4000" in your bare-metal workstation browser,
+and it should work as port 4000 traffic is passed through from your workstation
+to the VM.
+
+When you are done using `rake build` and `rake serve`, you can exit from
+the `vagrant ssh` shell to return to your bare metal machine, then 
+run `vagrant halt` to gracefully shutdown the VM.
 
 How to compile the site
 -----------------------

Added: cordova/site/Vagrantfile
URL: http://svn.apache.org/viewvc/cordova/site/Vagrantfile?rev=1618931&view=auto
==============================================================================
--- cordova/site/Vagrantfile (added)
+++ cordova/site/Vagrantfile Tue Aug 19 18:50:54 2014
@@ -0,0 +1,125 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  # All Vagrant configuration is done here. The most common configuration
+  # options are documented and commented below. For a complete reference,
+  # please see the online documentation at vagrantup.com.
+
+  # Every Vagrant virtual environment requires a box to build off of.
+  config.vm.box = "hashicorp/precise32"
+
+  # Provision for cordova-docs generator
+  config.vm.provision :shell, path: "vagrant/cordova-website.sh"
+
+  # Disable automatic box update checking. If you disable this, then
+  # boxes will only be checked for updates when the user runs
+  # `vagrant box outdated`. This is not recommended.
+  # config.vm.box_check_update = false
+
+  # Create a forwarded port mapping which allows access to a specific port
+  # within the machine from a port on the host machine. In the example below,
+  # accessing "localhost:8080" will access port 80 on the guest machine.
+  config.vm.network "forwarded_port", guest: 4000, host: 4000
+
+  # Create a private network, which allows host-only access to the machine
+  # using a specific IP.
+  # config.vm.network "private_network", ip: "192.168.33.10"
+
+  # Create a public network, which generally matched to bridged network.
+  # Bridged networks make the machine appear as another physical device on
+  # your network.
+  # config.vm.network "public_network"
+
+  # If true, then any SSH connections made will enable agent forwarding.
+  # Default value: false
+  # config.ssh.forward_agent = true
+
+  # Share an additional folder to the guest VM. The first argument is
+  # the path on the host to the actual folder. The second argument is
+  # the path on the guest to mount the folder. And the optional third
+  # argument is a set of non-required options.
+  # config.vm.synced_folder "../data", "/vagrant_data"
+
+  # Provider-specific configuration so you can fine-tune various
+  # backing providers for Vagrant. These expose provider-specific options.
+  # Example for VirtualBox:
+  #
+  # config.vm.provider "virtualbox" do |vb|
+  #   # Don't boot with headless mode
+  #   vb.gui = true
+  #
+  #   # Use VBoxManage to customize the VM. For example to change memory:
+  #   vb.customize ["modifyvm", :id, "--memory", "1024"]
+  # end
+  #
+  # View the documentation for the provider you're using for more
+  # information on available options.
+
+  # Enable provisioning with CFEngine. CFEngine Community packages are
+  # automatically installed. For example, configure the host as a
+  # policy server and optionally a policy file to run:
+  #
+  # config.vm.provision "cfengine" do |cf|
+  #   cf.am_policy_hub = true
+  #   # cf.run_file = "motd.cf"
+  # end
+  #
+  # You can also configure and bootstrap a client to an existing
+  # policy server:
+  #
+  # config.vm.provision "cfengine" do |cf|
+  #   cf.policy_server_address = "10.0.2.15"
+  # end
+
+  # Enable provisioning with Puppet stand alone.  Puppet manifests
+  # are contained in a directory path relative to this Vagrantfile.
+  # You will need to create the manifests directory and a manifest in
+  # the file default.pp in the manifests_path directory.
+  #
+  # config.vm.provision "puppet" do |puppet|
+  #   puppet.manifests_path = "manifests"
+  #   puppet.manifest_file  = "site.pp"
+  # end
+
+  # Enable provisioning with chef solo, specifying a cookbooks path, roles
+  # path, and data_bags path (all relative to this Vagrantfile), and adding
+  # some recipes and/or roles.
+  #
+  # config.vm.provision "chef_solo" do |chef|
+  #   chef.cookbooks_path = "../my-recipes/cookbooks"
+  #   chef.roles_path = "../my-recipes/roles"
+  #   chef.data_bags_path = "../my-recipes/data_bags"
+  #   chef.add_recipe "mysql"
+  #   chef.add_role "web"
+  #
+  #   # You may also specify custom JSON attributes:
+  #   chef.json = { mysql_password: "foo" }
+  # end
+
+  # Enable provisioning with chef server, specifying the chef server URL,
+  # and the path to the validation key (relative to this Vagrantfile).
+  #
+  # The Opscode Platform uses HTTPS. Substitute your organization for
+  # ORGNAME in the URL and validation key.
+  #
+  # If you have your own Chef Server, use the appropriate URL, which may be
+  # HTTP instead of HTTPS depending on your configuration. Also change the
+  # validation key to validation.pem.
+  #
+  # config.vm.provision "chef_client" do |chef|
+  #   chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
+  #   chef.validation_key_path = "ORGNAME-validator.pem"
+  # end
+  #
+  # If you're using the Opscode platform, your validator client is
+  # ORGNAME-validator, replacing ORGNAME with your organization name.
+  #
+  # If you have your own Chef Server, the default validation client name is
+  # chef-validator, unless you changed the configuration.
+  #
+  #   chef.validation_client_name = "ORGNAME-validator"
+end

Added: cordova/site/vagrant/cordova-website-user-stage.sh
URL: http://svn.apache.org/viewvc/cordova/site/vagrant/cordova-website-user-stage.sh?rev=1618931&view=auto
==============================================================================
--- cordova/site/vagrant/cordova-website-user-stage.sh (added)
+++ cordova/site/vagrant/cordova-website-user-stage.sh Tue Aug 19 18:50:54 2014
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+######### everything below here should be run as non-root
+
+echo "Starting non-root installations"
+echo "user=" `id`
+echo "dir=" `pwd`
+echo "\$HOME=$HOME"
+
+echo "install joDoc"
+curl -sSL https://github.com/davebalmer/joDoc/archive/master.tar.gz | tar xvz
+mv joDoc-master joDoc
+echo 'export PATH=$PATH:/home/vagrant/joDoc' >> /home/vagrant/.bashrc
+source /home/vagrant/.bashrc
+
+echo "install rvm and ruby 1.8.7"
+curl -sSL https://get.rvm.io | bash -s stable
+source /home/vagrant/.profile
+rvm install ruby-1.8.7-p374
+rvm alias create default ruby-1.8.7-p374
+sudo gem install bundler
+
+# echo "install git, nvm, Node.js/npm"
+curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash
+source /home/vagrant/.bash_profile
+nvm install 0.10
+
+# echo "setup project"
+cd /vagrant
+bundle install
+npm install

Propchange: cordova/site/vagrant/cordova-website-user-stage.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: cordova/site/vagrant/cordova-website.sh
URL: http://svn.apache.org/viewvc/cordova/site/vagrant/cordova-website.sh?rev=1618931&view=auto
==============================================================================
--- cordova/site/vagrant/cordova-website.sh (added)
+++ cordova/site/vagrant/cordova-website.sh Tue Aug 19 18:50:54 2014
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+# update system
+apt-get update
+apt-get upgrade
+
+# install curl
+apt-get install -y curl
+
+# install markdown
+apt-get install -y markdown
+
+# install nokogiri dependencies
+apt-get install -y libxslt-dev libxml2-dev
+
+# install rake
+apt-get install -y rake
+
+# git is required for nvm
+apt-get install -y git
+
+# we "svn commit" from the bare metal instead of this VM, so don't need svn
+
+# now run the rest of the commands as non-root
+cd /home/vagrant && sudo -u vagrant -H /vagrant/vagrant/cordova-website-user-stage.sh