[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