[mapguide-commits] r8596 - in trunk/Tools/Vagrant: . centos centos/src_update centos/test_x64 centos/test_x86 centos/x64 centos/x86 scripts sources ubuntu/x64 ubuntu/x86

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Mar 27 10:14:06 PDT 2015


Author: jng
Date: 2015-03-27 10:14:06 -0700 (Fri, 27 Mar 2015)
New Revision: 8596

Added:
   trunk/Tools/Vagrant/centos/test_x64/
   trunk/Tools/Vagrant/centos/test_x64/Vagrantfile
   trunk/Tools/Vagrant/centos/test_x64/provision.sh
   trunk/Tools/Vagrant/centos/test_x86/
   trunk/Tools/Vagrant/centos/test_x86/Vagrantfile
   trunk/Tools/Vagrant/centos/test_x86/provision.sh
   trunk/Tools/Vagrant/scripts/smoke_test.sh
   trunk/Tools/Vagrant/verify.bat
Modified:
   trunk/Tools/Vagrant/
   trunk/Tools/Vagrant/README.txt
   trunk/Tools/Vagrant/build.bat
   trunk/Tools/Vagrant/centos/src_update/
   trunk/Tools/Vagrant/centos/x64/Vagrantfile
   trunk/Tools/Vagrant/centos/x86/Vagrantfile
   trunk/Tools/Vagrant/clean.bat
   trunk/Tools/Vagrant/scripts/build.ps1
   trunk/Tools/Vagrant/sources/README.txt
   trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile
   trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile
Log:
#2520: Vagrant environment updates
 - Update build.bat to collect all build artifacts into a central location
 - Do not svn update sources and make updated source tarballs in the build vagrantfiles as we now have a dedicated vagrantfile for doing that
 - Add new smoke test script to perform basic validation of a Linux installation of MapGuide
   - Add CentOS smoke test vagrant files that will install the built copy of MapGuide and run the smoke test script
   - Ubuntu smoke test vagrant files will be added once we implement #2554
 - Update readmes


Property changes on: trunk/Tools/Vagrant
___________________________________________________________________
Added: svn:ignore
   + builds


Modified: trunk/Tools/Vagrant/README.txt
===================================================================
--- trunk/Tools/Vagrant/README.txt	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/README.txt	2015-03-27 17:14:06 UTC (rev 8596)
@@ -4,7 +4,7 @@
 This directory contains configurations and scripts to do the following:
 
  1. Create/register the necessary vagrant base boxes
- 2. Build MapGuide through vagrant-provisioned VMs
+ 2. Build MapGuide and FDO through vagrant-provisioned VMs
 
 Requirements
 ============
@@ -41,12 +41,19 @@
  * Ubuntu 12.04 32-bit
  * Ubuntu 12.04 64-bit
 
+If MG_SVN_UPDATE_SOURCES is set to 1 before running build.bat, a special CentOS VM will be spun up to svn update the MapGuide and FDO source
+tarballs to the latest revisions. Otherwise, the existing source tarballs will be built at their last updated svn revision.
+
 When each build completes, the build artifacts and assorted log files and unit test result XML files will be copied to these directories:
 
- * centos/x86/build
- * centos/x64/build
- * ubuntu/x86/build
- * ubuntu/x64/build
+ * builds/centos_x86
+ * builds/centos_x86/logs
+ * builds/centos_x64
+ * builds/centos_x64/logs
+ * builds/ubuntu_x86
+ * builds/ubuntu_x86/logs
+ * builds/ubuntu_x64
+ * builds/ubuntu_x64/logs
 
 For CentOS, the build will produce tarballs of FDO and MapGuide along with the necessary install scripts
 For Ubuntu, the build will produce debian package files of FDO and MapGuide along with the necessary install scripts

Modified: trunk/Tools/Vagrant/build.bat
===================================================================
--- trunk/Tools/Vagrant/build.bat	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/build.bat	2015-03-27 17:14:06 UTC (rev 8596)
@@ -6,18 +6,22 @@
 rem
 rem NOTE: CentOS builds must *always* precede the Ubuntu builds as Ubuntu builds may depend
 rem on the package FDO SDK tarball produced by the CentOS build
+rem
+rem Requires the tee utility, which is part of GNU on Windows (https://github.com/bmatzelle/gow)
 
-SET BUILD_UBUNTU_32=1
-SET BUILD_UBUNTU_64=1
-SET BUILD_CENTOS_32=1
-SET BUILD_CENTOS_64=1
-SET TEARDOWN_UBUNTU_32=1
-SET TEARDOWN_UBUNTU_64=1
-SET TEARDOWN_CENTOS_32=1
-SET TEARDOWN_CENTOS_64=1
+IF "%MG_SVN_UPDATE_SOURCES%"=="" SET MG_SVN_UPDATE_SOURCES=1
+IF "%BUILD_UBUNTU_32%"=="" SET BUILD_UBUNTU_32=1
+IF "%BUILD_UBUNTU_64%"=="" SET BUILD_UBUNTU_64=1
+IF "%BUILD_CENTOS_32%"=="" SET BUILD_CENTOS_32=1
+IF "%BUILD_CENTOS_64%"=="" SET BUILD_CENTOS_64=1
+IF "%TEARDOWN_UBUNTU_32%"=="" SET TEARDOWN_UBUNTU_32=1
+IF "%TEARDOWN_UBUNTU_64%"=="" SET TEARDOWN_UBUNTU_64=1
+IF "%TEARDOWN_CENTOS_32%"=="" SET TEARDOWN_CENTOS_32=1
+IF "%TEARDOWN_CENTOS_64%"=="" SET TEARDOWN_CENTOS_64=1
 SET ROOT=%CD%
 SET COMPONENT=
 echo **************** Build Summary *********************
+echo Update Sources: %MG_SVN_UPDATE_SOURCES%
 echo Building Ubuntu (32-bit): %BUILD_UBUNTU_32% (teardown=%TEARDOWN_UBUNTU_32%)
 echo Building Ubuntu (64-bit): %BUILD_UBUNTU_64% (teardown=%TEARDOWN_UBUNTU_64%)
 echo Building CentOS (32-bit): %BUILD_CENTOS_32% (teardown=%TEARDOWN_CENTOS_32%)
@@ -29,6 +33,34 @@
 if %BUILD_UBUNTU_32% == 1 xcopy /S /Y /I scripts\* %ROOT%\ubuntu\x86
 if %BUILD_CENTOS_64% == 1 xcopy /S /Y /I scripts\* %ROOT%\centos\x64
 if %BUILD_UBUNTU_64% == 1 xcopy /S /Y /I scripts\* %ROOT%\ubuntu\x64
+echo [build]: Prepare build artifact location
+if not exist builds mkdir builds
+if not exist builds\centos_x86 mkdir builds\centos_x86
+if not exist builds\centos_x64 mkdir builds\centos_x64
+if not exist builds\ubuntu_x86 mkdir builds\ubuntu_x86
+if not exist builds\ubuntu_x64 mkdir builds\ubuntu_x64
+if not exist builds\centos_x86\logs mkdir builds\centos_x86\logs
+if not exist builds\centos_x64\logs mkdir builds\centos_x64\logs
+if not exist builds\ubuntu_x86\logs mkdir builds\ubuntu_x86\logs
+if not exist builds\ubuntu_x64\logs mkdir builds\ubuntu_x64\logs
+echo [build]: Checking if we're updating sources
+if %MG_SVN_UPDATE_SOURCES% == 1 goto update_sources
+goto check_centos_32
+:update_sources
+SET COMPONENT=Update MapGuide and FDO tarballs
+pushd sources
+if exist updated rd /S /Q updated
+popd
+pushd centos\src_update
+call vagrant up 2>&1 | tee up.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+call vagrant destroy -f
+popd
+pushd sources\updated
+move /Y *.tar.gz ..
+echo [build]: Sources updated
+popd
 :check_centos_32
 echo [build]: Checking if we're building for CentOS 32-bit
 if %BUILD_CENTOS_32% == 1 goto build_centos_32
@@ -38,9 +70,20 @@
 SET COMPONENT=CentOS Build 32-bit
 echo [build]: MapGuide CentOS build 32-bit
 if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
 echo [build]: vagrant returned %errorlevel%
 if "%errorlevel%"=="1" goto error
+if not exist build\*.tar.xz goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\centos_x86
+move /Y build\*.tar.xz %ROOT%\builds\centos_x86
+move /Y build\*.log %ROOT%\builds\centos_x86\logs
+move /Y build\*.xml %ROOT%\builds\centos_x86\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\centos_x86
+if exist md5sums.txt del md5sums.txt
+md5sum *.* | tee md5sums.txt
+popd
 if %TEARDOWN_CENTOS_32% == 1 (
     echo [build]: Tearing down CentOS 32 VM
     goto destroy_centos_32
@@ -61,9 +104,20 @@
 SET COMPONENT=Ubuntu Build 32-bit
 echo [build]: MapGuide Ubuntu build 32-bit
 if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
 echo [build]: vagrant returned %errorlevel%
 if "%errorlevel%"=="1" goto error
+if not exist build\*.deb goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\ubuntu_x86
+move /Y build\*.deb %ROOT%\builds\ubuntu_x86
+move /Y build\*.log %ROOT%\builds\ubuntu_x86\logs
+move /Y build\*.xml %ROOT%\builds\ubuntu_x86\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\ubuntu_x86
+if exist md5sums.txt del md5sums.txt
+md5sum *.* | tee md5sums.txt
+popd
 if %TEARDOWN_UBUNTU_32% == 1 (
     echo [build]: Tearing down Ubuntu 32 VM
     goto destroy_ubuntu_32
@@ -84,9 +138,20 @@
 SET COMPONENT=CentOS Build 64-bit
 echo [build]: MapGuide CentOS build 64-bit
 if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
 echo [build]: vagrant returned %errorlevel%
 if "%errorlevel%"=="1" goto error
+if not exist build\*.tar.xz goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\centos_x64
+move /Y build\*.tar.xz %ROOT%\builds\centos_x64
+move /Y build\*.log %ROOT%\builds\centos_x64\logs
+move /Y build\*.xml %ROOT%\builds\centos_x64\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\centos_x64
+if exist md5sums.txt del md5sums.txt
+md5sum *.* | tee md5sums.txt
+popd
 if %TEARDOWN_CENTOS_64% == 1 (
     echo [build]: Tearing down CentOS 64 VM
     goto destroy_centos_64
@@ -107,9 +172,20 @@
 SET COMPONENT=Ubuntu Build 64-bit
 echo [build]: MapGuide Ubuntu build 64-bit
 if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
 echo [build]: vagrant returned %errorlevel%
 if "%errorlevel%"=="1" goto error
+if not exist build\*.deb goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\ubuntu_x64
+move /Y build\*.deb %ROOT%\builds\ubuntu_x64
+move /Y build\*.log %ROOT%\builds\ubuntu_x64\logs
+move /Y build\*.xml %ROOT%\builds\ubuntu_x64\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\ubuntu_x64
+if exist md5sums.txt del md5sums.txt
+md5sum *.* | tee md5sums.txt
+popd
 if %TEARDOWN_UBUNTU_64% == 1 (
     echo [build]: Tearing down Ubuntu 64 VM
     goto destroy_ubuntu_64


Property changes on: trunk/Tools/Vagrant/centos/src_update
___________________________________________________________________
Added: svn:ignore
   + .vagrant



Property changes on: trunk/Tools/Vagrant/centos/test_x64
___________________________________________________________________
Added: svn:ignore
   + .vagrant


Added: trunk/Tools/Vagrant/centos/test_x64/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/test_x64/Vagrantfile	                        (rev 0)
+++ trunk/Tools/Vagrant/centos/test_x64/Vagrantfile	2015-03-27 17:14:06 UTC (rev 8596)
@@ -0,0 +1,123 @@
+# -*- 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 = "centos6-amd64"
+
+  # The url from where the 'config.vm.box' box will be fetched if it
+  # doesn't already exist on the user's system.
+  # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+  # 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: 80, host: 8080
+
+  # 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 "../../sources", "/mapguide_sources"
+
+  # 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 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 centos6.4-x86-mapguide.pp in the manifests_path directory.
+  #
+  # An example Puppet manifest to provision the message of the day:
+  #
+  # # group { "puppet":
+  # #   ensure => "present",
+  # # }
+  # #
+  # # File { owner => 0, group => 0, mode => 0644 }
+  # #
+  # # file { '/etc/motd':
+  # #   content => "Welcome to your Vagrant-built virtual machine!
+  # #               Managed by Puppet.\n"
+  # # }
+  #
+  # 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"
+  
+  config.vm.provision "shell",
+    privileged: false,
+    path: "provision.sh",
+    args: "#{ENV['DOWNLOAD_HOST']}"
+end

Added: trunk/Tools/Vagrant/centos/test_x64/provision.sh
===================================================================
--- trunk/Tools/Vagrant/centos/test_x64/provision.sh	                        (rev 0)
+++ trunk/Tools/Vagrant/centos/test_x64/provision.sh	2015-03-27 17:14:06 UTC (rev 8596)
@@ -0,0 +1,14 @@
+#!/bin/bash
+DOWNLOAD_HOST=$1
+sudo yum install -y wget
+echo Download host is: $DOWNLOAD_HOST
+wget "http://$DOWNLOAD_HOST/builds/Sheboygan.mgp"
+wget "http://$DOWNLOAD_HOST/builds/smoke_test.sh"
+sudo mv Sheboygan.mgp /tmp/
+wget "http://$DOWNLOAD_HOST/builds/centos_x64/mginstallcentos.sh"
+sed -i 's/URL="http:\/\/download/URL_OLD="http:\/\/download/g' mginstallcentos.sh
+sed -i 's/#URL="http:\/\/192.168.0.4\/downloads"/URL="http:\/\/'"$DOWNLOAD_HOST"'\/builds\/centos_x64"/g' mginstallcentos.sh
+chmod +x smoke_test.sh
+chmod +x mginstallcentos.sh
+sudo -E ./mginstallcentos.sh
+sudo -E ./smoke_test.sh
\ No newline at end of file


Property changes on: trunk/Tools/Vagrant/centos/test_x86
___________________________________________________________________
Added: svn:ignore
   + .vagrant


Added: trunk/Tools/Vagrant/centos/test_x86/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/test_x86/Vagrantfile	                        (rev 0)
+++ trunk/Tools/Vagrant/centos/test_x86/Vagrantfile	2015-03-27 17:14:06 UTC (rev 8596)
@@ -0,0 +1,123 @@
+# -*- 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 = "centos6-i386"
+
+  # The url from where the 'config.vm.box' box will be fetched if it
+  # doesn't already exist on the user's system.
+  # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+  # 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: 80, host: 8080
+
+  # 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 "../../sources", "/mapguide_sources"
+
+  # 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 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 centos6.4-x86-mapguide.pp in the manifests_path directory.
+  #
+  # An example Puppet manifest to provision the message of the day:
+  #
+  # # group { "puppet":
+  # #   ensure => "present",
+  # # }
+  # #
+  # # File { owner => 0, group => 0, mode => 0644 }
+  # #
+  # # file { '/etc/motd':
+  # #   content => "Welcome to your Vagrant-built virtual machine!
+  # #               Managed by Puppet.\n"
+  # # }
+  #
+  # 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"
+  
+  config.vm.provision "shell",
+    privileged: false,
+    path: "provision.sh",
+    args: "#{ENV['DOWNLOAD_HOST']}"
+end

Added: trunk/Tools/Vagrant/centos/test_x86/provision.sh
===================================================================
--- trunk/Tools/Vagrant/centos/test_x86/provision.sh	                        (rev 0)
+++ trunk/Tools/Vagrant/centos/test_x86/provision.sh	2015-03-27 17:14:06 UTC (rev 8596)
@@ -0,0 +1,14 @@
+#!/bin/bash
+DOWNLOAD_HOST=$1
+sudo yum install -y wget
+echo Download host is: $DOWNLOAD_HOST
+wget "http://$DOWNLOAD_HOST/builds/Sheboygan.mgp"
+wget "http://$DOWNLOAD_HOST/builds/smoke_test.sh"
+sudo mv Sheboygan.mgp /tmp/
+wget "http://$DOWNLOAD_HOST/builds/centos_x86/mginstallcentos.sh"
+sed -i 's/URL="http:\/\/download/URL_OLD="http:\/\/download/g' mginstallcentos.sh
+sed -i 's/#URL="http:\/\/192.168.0.4\/downloads"/URL="http:\/\/'"$DOWNLOAD_HOST"'\/builds\/centos_x86"/g' mginstallcentos.sh
+chmod +x smoke_test.sh
+chmod +x mginstallcentos.sh
+sudo -E ./mginstallcentos.sh
+sudo -E ./smoke_test.sh
\ No newline at end of file

Modified: trunk/Tools/Vagrant/centos/x64/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/x64/Vagrantfile	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/centos/x64/Vagrantfile	2015-03-27 17:14:06 UTC (rev 8596)
@@ -219,14 +219,6 @@
     mkdir -p $MG_SRC_ROOT
     tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
 fi
-echo [provision]: svn update FDO
-BUILD_COMPONENT="svn update FDO"
-svn update $FDO_SRC
-check_build
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-svn update $MG_SRC
-check_build
 if [ -d /mapguide_sources/patches/fdo ];
 then
     echo [provision]: Applying FDO source patches
@@ -343,19 +335,6 @@
 sudo sed -i 's/MGVER_REV=0/MGVER_REV='"$MG_REV"'/g' /vagrant/build/mginstallcentos.sh
 sudo sed -i 's/FDO_ARCH=i386/FDO_ARCH=amd64/g' /vagrant/build/mginstallcentos.sh
 sudo sed -i 's/MG_ARCH=i386/MG_ARCH=amd64/g' /vagrant/build/mginstallcentos.sh
-if [ ! -d /mapguide_sources/updated ]; then
-    sudo mkdir -p /mapguide_sources/updated
-    cd $MG_SRC_ROOT
-    echo [provision]: Updating mapguide source tarball
-    tar -zcf $MG_TARBALL MgDev
-    sudo mv $MG_TARBALL /mapguide_sources/updated
-    cd $FDO_SRC_ROOT
-    echo [provision]: Updating fdo source tarball
-    tar -zcf $FDO_TARBALL $FDO_SRC_DIR
-    sudo mv $FDO_TARBALL /mapguide_sources/updated
-else
-    echo [provision]: Updated tarballs already exist. Doing nothing
-fi
 echo [provision]: Build complete
 SCRIPT
   

Modified: trunk/Tools/Vagrant/centos/x86/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/x86/Vagrantfile	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/centos/x86/Vagrantfile	2015-03-27 17:14:06 UTC (rev 8596)
@@ -221,14 +221,6 @@
     mkdir -p $MG_SRC_ROOT
     tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
 fi
-echo [provision]: svn update FDO
-BUILD_COMPONENT="svn update FDO"
-svn update $FDO_SRC
-check_build
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-svn update $MG_SRC
-check_build
 if [ -d /mapguide_sources/patches/fdo ];
 then
     echo [provision]: Applying FDO source patches
@@ -343,19 +335,6 @@
 sudo cp /vagrant/mguninstallcentos.sh /vagrant/build/mguninstallcentos.sh
 sudo sed -i 's/FDOVER_REV=0/FDOVER_REV='"$FDO_REV"'/g' /vagrant/build/mginstallcentos.sh
 sudo sed -i 's/MGVER_REV=0/MGVER_REV='"$MG_REV"'/g' /vagrant/build/mginstallcentos.sh
-if [ ! -d /mapguide_sources/updated ]; then
-    sudo mkdir -p /mapguide_sources/updated
-    cd $MG_SRC_ROOT
-    echo [provision]: Updating mapguide source tarball
-    tar -zcf $MG_TARBALL MgDev
-    sudo mv $MG_TARBALL /mapguide_sources/updated
-    cd $FDO_SRC_ROOT
-    echo [provision]: Updating fdo source tarball
-    tar -zcf $FDO_TARBALL $FDO_SRC_DIR
-    sudo mv $FDO_TARBALL /mapguide_sources/updated
-else
-    echo [provision]: Updated tarballs already exist. Doing nothing
-fi
 echo [provision]: Build complete
 SCRIPT
   

Modified: trunk/Tools/Vagrant/clean.bat
===================================================================
--- trunk/Tools/Vagrant/clean.bat	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/clean.bat	2015-03-27 17:14:06 UTC (rev 8596)
@@ -8,6 +8,9 @@
 if exist fdosdk_rev del /F fdosdk_rev
 del /F fdosdk*.tar.gz
 popd
+pushd centos\src_update
+call vagrant destroy -f
+popd
 pushd ubuntu\x86
 SET COMPONENT=Ubuntu Build 32-bit
 echo [clean]: MapGuide Ubuntu build 32-bit

Modified: trunk/Tools/Vagrant/scripts/build.ps1
===================================================================
--- trunk/Tools/Vagrant/scripts/build.ps1	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/scripts/build.ps1	2015-03-27 17:14:06 UTC (rev 8596)
@@ -62,7 +62,7 @@
     [string]
     $ant_path = "C:\apache-ant\bin",
     [string]
-    $graphviz_path = "C:\Program Files (x86)\Graphviz2.30\bin",
+    $graphviz_path = "C:\Program Files (x86)\Graphviz2.38\bin",
     [string]
     $artifact_path = ".\artifacts",
     [int]

Added: trunk/Tools/Vagrant/scripts/smoke_test.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/smoke_test.sh	                        (rev 0)
+++ trunk/Tools/Vagrant/scripts/smoke_test.sh	2015-03-27 17:14:06 UTC (rev 8596)
@@ -0,0 +1,199 @@
+#!/bin/bash
+
+# smoke_test.sh
+#
+# Performs basic smoke testing of a Linux installation of MapGuide
+#
+#  1. Checks that the mgserver process is running
+#  2. Checks that the httpd process is running
+#  3. Checks that the mapagent is reachable and records the result of a GETSITEINFO request made with curl
+#  4. Checks that the a fair number of FDO providers are functional with a GETFEATUREPROVIDERS request made with curl
+#  5. Checks that the Sheboygan dataset can be loaded via the mapagent with the APPLYRESOURCEPACKAGE request made with curl
+#  6. Checks that the Sheboygan data is indeed loaded by fetching for various resource contents with curl
+#  7. Checks that we can walk schemas by issuing a series of DESCRIBESCHEMA calls
+#  8. Checks that the AJAX viewer URL returns HTTP 200
+#  9. Checks that the Fusion viewer URL with the 5 templates all return HTTP 200
+
+pass=0
+fail=0
+http_port=8008
+url_root="http://localhost:$http_port/mapguide"
+mapagent_url="$url_root/mapagent/mapagent.fcgi"
+ajaxviewer_url="$url_root/mapviewerajax/"
+fusion_root="$url_root/fusion/templates/mapguide"
+package_path=/tmp/Sheboygan.mgp
+
+fsids=("Data/BuildingOutlines.FeatureSource" "Data/CityLimits.FeatureSource" "Data/HydrographicLines.FeatureSource" "Data/HydrographicPolygons.FeatureSource" "Data/Islands.FeatureSource" "Data/LandUse.FeatureSource" "Data/Parcels.FeatureSource" "Data/Rail.FeatureSource" "Data/RoadCenterLines.FeatureSource" "Data/Soils.FeatureSource" "Data/Trees.FeatureSource" "Data/VotingDistricts.FeatureSource")
+basic_layout="Library://Samples/Sheboygan/Layouts/SheboyganPhp.WebLayout"
+flex_layout="Library://Samples/Sheboygan/Layouts/Slate.ApplicationDefinition"
+
+check_mgserver()
+{
+	echo "[check]: mgserver is running"
+	if [ "$(pidof mgserver)" ]
+	then
+		pass=$((pass + 1))
+		echo "    [check - PASS]: mgserver found"
+	else
+		fail=$((fail + 1))
+		echo "    [check - FAIL]: mgserver not found"
+	fi
+}
+
+check_httpd()
+{
+	echo "[check]: httpd is running"
+	if [ "$(pidof httpd)" ]
+	then
+		pass=$((pass + 1))
+		echo "    [check - PASS]: httpd found"
+	else
+		fail=$((fail + 1))
+		echo "    [check - FAIL]: httpd not found"
+	fi
+}
+
+assert_request()
+{
+	request_method=$1
+	request_url=$2
+	test_name=$3
+	output_file=$4
+	expected_status=$5
+	username=$6
+	password=$7
+	if [ -z "$username" ]
+	then
+		#echo "[curl] request without credentials"
+		curl -s -i -X $request_method "$request_url" -o $output_file
+	else
+		#echo "[curl] request with credentials"
+		curl -u $username:$password -s -i -X $request_method "$request_url" -o $output_file
+	fi
+	status=`cat $output_file | grep HTTP/1.1 | awk {'print $2'}`
+	if [ "$status" != "$expected_status" ]
+	then
+		fail=$((fail + 1))
+		echo "    [check - FAIL]: Expected HTTP status of $expected_status. Check $output_file for more information"
+	else
+		pass=$((pass + 1))
+		echo "    [check - PASS]: $test_name"
+	fi
+}
+
+assert_package_load()
+{
+	request_method="POST"
+	request_url="$mapagent_url"
+	expected_status=$1
+	test_name=$2
+	output_file=$3
+	username=$4
+	password=$5
+	if [ -z "$username" ]
+	then
+		#echo "[curl] request without credentials"
+		curl -s -i -X $request_method -d 'MAX_FILE_SIZE=100000000' -d 'OPERATION=APPLYRESOURCEPACKAGE' -d 'VERSION=1.0.0' -d 'LOCALE=en' -d PACKAGE=$package_path "$request_url" -o $output_file
+	else
+		#echo "[curl] request with credentials"
+		curl -u $username:$password -s -i -X $request_method -d 'MAX_FILE_SIZE=100000000' -d 'OPERATION=APPLYRESOURCEPACKAGE' -d 'VERSION=1.0.0' -d 'LOCALE=en' -d PACKAGE=$package_path "$request_url" -o $output_file
+	fi	
+	status=`cat $output_file | grep HTTP/1.1 | awk {'print $2'}`
+	if [ "$status" != "$expected_status" ]
+	then
+		fail=$((fail + 1))
+		echo "    [check - FAIL]: Expected HTTP status of $expected_status. Check $output_file for more information"
+	else
+		pass=$((pass + 1))
+		echo "    [check - PASS]: $test_name"
+	fi
+}
+
+check_createsession()
+{
+	echo "[check]: Create Session"
+	assert_request "POST" "$mapagent_url?OPERATION=CREATESESSION&VERSION=1.0.0&LOCALE=en" "CREATESESSION un-authenticated" "unauthenticated.txt" "401"
+	assert_request "POST" "$mapagent_url?OPERATION=CREATESESSION&VERSION=1.0.0&LOCALE=en" "CREATESESSION admin" "CREATESESSION_admin.txt" "200" "Administrator" "admin"
+	assert_request "POST" "$mapagent_url?OPERATION=CREATESESSION&VERSION=1.0.0&LOCALE=en" "CREATESESSION anon" "CREATESESSION_anon.txt" "200" "Anonymous"
+}
+
+check_siteversion()
+{
+	echo "[check]: Get MapGuide version from mapagent"
+	assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO admin" "GETSITEINFO_admin.txt" "200" "Administrator" "admin"
+	assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO anon" "GETSITEINFO_anon.txt" "200" "Anonymous"
+	assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO un-authenticated" "unauthenticated.txt" "401"
+	assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO bad credentials" "unauthenticated.txt" "401" "foo" "bar"
+}
+
+check_featureproviders()
+{
+	echo "[check]: Get FDO Feature Provider List"
+	assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS admin" "GETFEATUREPROVIDERS_admin.txt" "200" "Administrator" "admin"
+	assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS anon" "GETFEATUREPROVIDERS_anon.txt" "200" "Anonymous"
+	assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS un-authenticated" "unauthenticated.txt" "401"
+	assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS bad credentials" "unauthenticated.txt" "401" "foo" "bar"
+}
+
+check_loadpackage()
+{
+	echo "[check]: Load Package"
+	assert_package_load "401" "APPLYRESOURCEPACKAGE un-authenticated" "unauthenticated.txt"
+	assert_package_load "401" "APPLYRESOURCEPACKAGE anon un-authenticated" "APPLYRESOURCEPACKAGE_anon.txt" "Anonymous"
+	assert_package_load "200" "APPLYRESOURCEPACKAGE admin" "APPLYRESOURCEPACKAGE_admin.txt" "Administrator" "admin"
+}
+
+check_postpackageload()
+{
+	assert_request "GET" "$mapagent_url?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&DEPTH=-1" "ENUMERATERESOURCES un-authenticated" "unauthenticated.txt" "401"
+	assert_request "GET" "$mapagent_url?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&DEPTH=-1" "ENUMERATERESOURCES admin" "ENUMERATERESOURCES_admin.txt" "200" "Administrator" "admin"
+	assert_request "GET" "$mapagent_url?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&DEPTH=-1" "ENUMERATERESOURCES anon" "ENUMERATERESOURCES_anon.txt" "200" "Anonymous"
+
+	echo "[check]: Verify some resources exist after loading package"
+	for r in "${fsids[@]}"
+	do
+		resid="Library://Samples/Sheboygan/$r"
+		assert_request "GET" "$mapagent_url?OPERATION=GETRESOURCECONTENT&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "GETRESOURCECONTENT admin $resid" "GETRESOURCE_admin.txt" "200" "Administrator" "admin"
+		assert_request "GET" "$mapagent_url?OPERATION=GETRESOURCECONTENT&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "GETRESOURCECONTENT anon $resid" "GETRESOURCE_anon.txt" "200" "Anonymous"
+	done
+}
+
+check_schemawalk()
+{
+	echo "[check]: Check we can walk some feature sources"
+	for r in "${fsids[@]}"
+	do
+		resid="Library://Samples/Sheboygan/$r"
+		assert_request "GET" "$mapagent_url?OPERATION=DESCRIBEFEATURESCHEMA&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "DESCRIBEFEATURESCHEMA admin $resid" "DESCRIBEFEATURESCHEMA_admin.txt" "200" "Administrator" "admin"
+		assert_request "GET" "$mapagent_url?OPERATION=DESCRIBEFEATURESCHEMA&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "DESCRIBEFEATURESCHEMA anon $resid" "DESCRIBEFEATURESCHEMA_anon.txt" "200" "Anonymous"
+	done
+}
+
+check_ajaxviewer()
+{
+	echo "[check]: AJAX viewer"
+	assert_request "GET" "$ajaxviewer_url?WEBLAYOUT=$basic_layout&USERNAME=Anonymous" "Load AJAX Viewer" "AJAXVIEWER_anon.txt" "200"
+}
+
+check_fusion()
+{
+	templates=("slate" "limegold" "aqua" "turquoiseyellow" "maroon")
+	for template in "${templates[@]}"
+	do
+		echo "[check]: Fusion viewer $template"
+		assert_request "GET" "$fusion_root/$template/index.html?ApplicationDefinition=$flex_layout" "Load Fusion template $template" "Fusion_$template.txt" "200"
+	done
+}
+
+check_mgserver
+check_httpd
+check_createsession
+check_siteversion
+check_featureproviders
+check_loadpackage
+check_postpackageload
+check_schemawalk
+check_ajaxviewer
+check_fusion
+
+echo "Pass: $pass, Fail: $fail"

Modified: trunk/Tools/Vagrant/sources/README.txt
===================================================================
--- trunk/Tools/Vagrant/sources/README.txt	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/sources/README.txt	2015-03-27 17:14:06 UTC (rev 8596)
@@ -4,6 +4,12 @@
 fdo-checkout.tar.gz
 mapguide-checkout.tar.gz
 
+For branch-based builds, append the respective MapGuide and FDO versions to the tarball name.
+
+For example if building for MapGuide Open Source 2.6 (with FDO 3.9), your tarballs should be named:
+ * fdo-checkout-3.9.tar.gz
+ * mapguide-checkout-2.6.tar.gz
+
 fdo_rdbms_thirdparty.tar.gz is a tarball containing the following directory structure:
 
     fdo_rdbms_thirdparty
@@ -19,6 +25,14 @@
 
     trunk [svn checkout of http://svn.osgeo.org/fdo/trunk]
 
+If this is a branch tarball, the folder should be the FDO version number, for example FDO 3.9 tarball should be:
+
+    3.9 [svn checkout of http://svn.osgeo.org/fdo/branches/3.9]
+
 mapguide-checkout.tar.gz is tarball containing the following directory structure:
 
-    MgDev [svn checkout of http://svn.osgeo.org/mapguide/trunk/MgDev]
\ No newline at end of file
+    MgDev [svn checkout of http://svn.osgeo.org/mapguide/trunk/MgDev]
+
+If this is a branch tarball, the folder should be the same, but it should be the svn checkout of the respective branch url, for example MGOS 2.6 tarball should be:
+
+    MgDev [svn checkout of http://svn.osgeo.org/mapguide/branches/2.6/MgDev]
\ No newline at end of file

Modified: trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile	2015-03-27 17:14:06 UTC (rev 8596)
@@ -247,23 +247,6 @@
 fi
 if [ $HAVE_FDO_SDK -eq 0 ];
 then
-    echo [provision]: svn update FDO
-    BUILD_COMPONENT="svn update FDO"
-    # Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
-    #svn upgrade $FDO_SRC
-    svn update $FDO_SRC
-    check_build
-else
-    echo [provision]: Using FDO SDK. No svn update of source required.
-fi
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-# Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
-#svn upgrade $MG_SRC
-svn update $MG_SRC
-check_build
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
     if [ -d /mapguide_sources/patches/fdo ];
     then
         echo [provision]: Applying FDO source patches
@@ -384,24 +367,6 @@
 sudo sed -i 's/MGBUILD=0/MGBUILD='"$MG_REV"'/g' /vagrant/build/mginstallubuntu.sh
 sudo sed -i 's/FDOARCH=i386/FDOARCH=amd64/g' /vagrant/build/mginstallubuntu.sh
 sudo sed -i 's/MGARCH=i386/MGARCH=amd64/g' /vagrant/build/mginstallubuntu.sh
-# Do not update the working copy tarballs. Ubuntu 14.04 uses svn 1.8 which will break
-# the working copy if copied over to a CentOS VM (which is still on 1.6)
-#
-# If anyone is doing to do the working copy update, it will be the CentOS VM
-#
-#if [ ! -d /mapguide_sources/updated ]; then
-#    sudo mkdir -p /mapguide_sources/updated
-#    cd $MG_SRC_ROOT
-#    echo [provision]: Updating mapguide source tarball
-#    tar -zcf $MG_TARBALL MgDev
-#    sudo mv $MG_TARBALL /mapguide_sources/updated
-#    cd $FDO_SRC_ROOT
-#    echo [provision]: Updating fdo source tarball
-#    tar -zcf $FDO_TARBALL $FDO_SRC_DIR
-#    sudo mv $FDO_TARBALL /mapguide_sources/updated
-#else
-#    echo [provision]: Updated tarballs already exist. Doing nothing
-#fi
 echo [provision]: Build complete
 SCRIPT
   

Modified: trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile	2015-03-26 23:43:30 UTC (rev 8595)
+++ trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile	2015-03-27 17:14:06 UTC (rev 8596)
@@ -246,23 +246,6 @@
 fi
 if [ $HAVE_FDO_SDK -eq 0 ];
 then
-    echo [provision]: svn update FDO
-    BUILD_COMPONENT="svn update FDO"
-    # Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
-    #svn upgrade $FDO_SRC
-    svn update $FDO_SRC
-    check_build
-else
-    echo [provision]: Using FDO SDK. No svn update of source required.
-fi
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-# Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
-#svn upgrade $MG_SRC
-svn update $MG_SRC
-check_build
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
     if [ -d /mapguide_sources/patches/fdo ];
     then
         echo [provision]: Applying FDO source patches
@@ -381,24 +364,6 @@
 sudo cp /vagrant/mguninstallubuntu.sh /vagrant/build/mguninstallubuntu.sh
 sudo sed -i 's/FDOBUILD=0/FDOBUILD='"$FDO_REV"'/g' /vagrant/build/mginstallubuntu.sh
 sudo sed -i 's/MGBUILD=0/MGBUILD='"$MG_REV"'/g' /vagrant/build/mginstallubuntu.sh
-# Do not update the working copy tarballs. Ubuntu 14.04 uses svn 1.8 which will break
-# the working copy if copied over to a CentOS VM (which is still on 1.6)
-#
-# If anyone is doing to do the working copy update, it will be the CentOS VM
-#
-#if [ ! -d /mapguide_sources/updated ]; then
-#    sudo mkdir -p /mapguide_sources/updated
-#    cd $MG_SRC_ROOT
-#    echo [provision]: Updating mapguide source tarball
-#    tar -zcf $MG_TARBALL MgDev
-#    sudo mv $MG_TARBALL /mapguide_sources/updated
-#    cd $FDO_SRC_ROOT
-#    echo [provision]: Updating fdo source tarball
-#    tar -zcf $FDO_TARBALL $FDO_SRC_DIR
-#    sudo mv $FDO_TARBALL /mapguide_sources/updated
-#else
-#    echo [provision]: Updated tarballs already exist. Doing nothing
-#fi
 echo [provision]: Build complete
 SCRIPT
   

Added: trunk/Tools/Vagrant/verify.bat
===================================================================
--- trunk/Tools/Vagrant/verify.bat	                        (rev 0)
+++ trunk/Tools/Vagrant/verify.bat	2015-03-27 17:14:06 UTC (rev 8596)
@@ -0,0 +1,91 @@
+ at echo off
+
+rem build.bat
+rem
+rem Performs basic smoke tests of CentOS and Ubuntu builds. 
+rem
+rem A basic web server is set up to serve files from the build artifact output directory
+rem
+rem With that set up, the following smoke tests are performed
+rem
+rem  1. CentOS/Ubuntu install scripts with sed'd URLs will properly download and install the required packages
+rem  2. The httpd and MapGuide Servers are verified to be running and operational by the basic smoke test shell script
+rem
+rem Requires the sed utility, which is part of GNU on Windows (https://github.com/bmatzelle/gow)
+
+IF "%VERIFY_UBUNTU_32%"=="" SET VERIFY_UBUNTU_32=1
+IF "%VERIFY_UBUNTU_64%"=="" SET VERIFY_UBUNTU_64=1
+IF "%VERIFY_CENTOS_32%"=="" SET VERIFY_CENTOS_32=1
+IF "%VERIFY_CENTOS_64%"=="" SET VERIFY_CENTOS_64=1
+
+echo **************** Verify Summary *********************
+echo Verifying Ubuntu (32-bit): %VERIFY_UBUNTU_32%
+echo Verifying Ubuntu (64-bit): %VERIFY_UBUNTU_64%
+echo Verifying CentOS (32-bit): %VERIFY_CENTOS_32%
+echo Verifying CentOS (64-bit): %VERIFY_CENTOS_64%
+echo ****************************************************
+:check_centos_32
+echo [build]: Checking if we're verifying CentOS 32-bit
+if %VERIFY_CENTOS_32% == 1 goto test_centos_32
+goto check_ubuntu_32
+:test_centos_32
+pushd centos\test_x86
+SET COMPONENT=CentOS Build 32-bit
+echo [build]: MapGuide CentOS build 32-bit
+call vagrant up 2>&1 | tee up.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_centos_32
+call vagrant destroy -f
+:centos_32_done
+popd
+:check_ubuntu_32
+echo [build]: Checking if we're verifying Ubuntu 32-bit
+if %VERIFY_UBUNTU_32% == 1 goto test_ubuntu_32
+goto check_centos_64
+:test_ubuntu_32
+pushd ubuntu\test_x86
+SET COMPONENT=Ubuntu Build 32-bit
+echo [build]: MapGuide Ubuntu build 32-bit
+call vagrant up 2>&1 | tee up.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_ubuntu_32
+call vagrant destroy -f
+:ubuntu_32_done
+popd
+:check_centos_64
+echo [build]: Checking if we're verifying CentOS 64-bit
+if %VERIFY_CENTOS_64% == 1 goto test_centos_64
+goto check_ubuntu_64
+:test_centos_64
+pushd centos\test_x64
+SET COMPONENT=CentOS Build 64-bit
+echo [build]: MapGuide CentOS build 64-bit
+call vagrant up 2>&1 | tee up.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_centos_64
+call vagrant destroy -f
+:centos_64_done
+popd
+:check_ubuntu_64
+echo [build]: Checking if we're verifying Ubuntu 64-bit
+if %VERIFY_UBUNTU_64% == 1 goto test_ubuntu_64
+goto quit
+:test_ubuntu_64
+pushd ubuntu\test_x64
+SET COMPONENT=Ubuntu Build 64-bit
+echo [build]: MapGuide Ubuntu build 64-bit
+call vagrant up 2>&1 | tee up.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_ubuntu_64
+call vagrant destroy -f
+:ubuntu_64_done
+popd
+goto quit
+:error
+echo [ERROR]: There was an error building the component %COMPONENT%
+exit /B 1
+:quit
\ No newline at end of file



More information about the mapguide-commits mailing list