Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note

Following steps are tested on Mint 13, should work on ubuntu 12.04.  The same basic workflow should also work on Mac 10.7, with different specific commands for the prerequisite setup steps.  For Windows, you will need to run in cygwin and rename the genisoimage.exe file to mkisofs.

Note

Unless specified specifically, instruction steps should be assumed to be run from your local machine, not from within the DevCloud VM.  The DevCloud VM is the target runtime environment of the tests, but the instructions will push the code to that VM at the right time.

Setup environment

Install the devcloud VM image.

...

Code Block
wget http://downloads.sourceforge.net/project/jsch/jsch.jar/0.1.48/jsch-0.1.48.jar
sudo cp jsch-0.1.48.jar /usr/share/ant/lib/

Install Boto :(assumes you have Python and Setup Tools installed):

Code Block
sudo easy_install boto

Test the Build

Clean up your environment (and DevCloud)

Code Block
rm -rfRf /tmp/cloudstack
rm -Rf ~/.m2
ssh root@localhost -p 2222 'cd /opt/cloudstack/; rm -rf apache-tomcat-6.0.32; unzip apache-tomcat-6.0.32.zip; cd incubator-cloudstack; git clean -f; git reset --hard; git pull --rebase; git clean -f; git  checkout origin/4.0 -b 4.0 -f '

...

Download the source build

Note

The following should be done performed on your computer, not the devCloud VM.

Download the artifacts:

Code Block
mkdir -p ~/tmp/cloudstack; cd ~/tmp/cloudstack
wget http://people.apache.org/~chipchilders/dist/cloudstack/KEYS
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.zip
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.zip.asc
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.zip.md5
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.zip.sha
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.tar.gz
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.tar.gz.asc
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.tar.gz.md5
wget http://people.apache.org/~chipchilders/dist/cloudstack/releases/4.0.0-incubating/apache-cloudstack-4.0.0-incubating-src.tar.gz.sha

...

Import keys:  

This can be done via a keyserver:  gpg --recv-keys CC56CEA8 DB3ECA42 2908DED2 6FE50F1COr this can be done by importing by importing the keys stored in the source distribution's KEYS file:  gpg --import KEYS

Alternatively, you could download the signing keys (ID's found in the KEYS file) individually via a keyserver.  Ex:  gpg --recv-keys CC56CEA8

Verify signatures and hash files:

Code Block
gpg --verify apache-cloudstack-4.0.0-incubating-src.tar.gz.asc
gpg --verify apache-cloudstack-4.0.0-incubating-src.zip.asc

Both of these commands should return "Good Signature".

Code Block

gpg gpg --print-md MD5 apache-cloudstack-4.0.0-incubating-src.tar.gz | diff - apache-cloudstack-4.0.0-incubating-src.tar.gz.md5
gpg --print-md MD5 apache-cloudstack-4.0.0-incubating-src.zip | diff - apache-cloudstack-4.0.0-incubating-src.zip.md5
gpg --print-md SHA512 apache-cloudstack-4.0.0-incubating-src.tar.gz | diff - apache-cloudstack-4.0.0-incubating-src.tar.gz.sha
gpg --print-md SHA512 apache-cloudstack-4.0.0-incubating-src.zip | diff - apache-cloudstack-4.0.0-incubating-src.zip.sha

Each of these commands should return no output. If there is any output from them, then there is a difference between the hash you generated locally and the hash that has been pulled from the server.

Extract the source code and verify the contents:

Get the commit hash from the VOTE email (ex: 4cd60f3d1683a3445c3248f48ae064fb573db2a1). The value will change between releases.

Create two new temporary directories:

Code Block

mkdir /tmp/cloudstack/git
mkdir /tmp/cloudstack/tree

Pull down the git repo:

Code Block

git clone https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git /tmp/cloudstack/git
cd /tmp/cloudstack/git
git archive --prefix=/tmp/cloudstack/tree/ <commit-hash> | tar Pxf -

Unpack the release artifact:

Code Block

cd /tmp/cloudstack
tar xvfz
Code Block

unzip apache-cloudstack-4.0.0-incubating-src.tar.zipgz

ORCompare the contents of the release artifact with the contents pulled from the repo:

Code Block
tardiff xvfz-r /tmp/apache-cloudstack-4.0.0-incubating-src.tar.gz
 /tmp/cloudstack/tree

Nothing should be different.

Verify the Code's License Headers

Code Block
cd /tmp/apache-cloudstack-4.0.0-incubating-src
mvn --projects='org.apache.cloudstack:cloudstack' org.apache.rat:apache-rat-plugin:0.8:check

...