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