diff --git a/web/Gemfile b/web/Gemfile index e7ac3d02f..c47ea1250 100644 --- a/web/Gemfile +++ b/web/Gemfile @@ -6,6 +6,7 @@ end # Look for $WORKSPACE, otherwise use "workspace" as dev path. workspace = ENV["WORKSPACE"] || "~/workspace" + devenv = ENV["BUILD_NUMBER"].nil? # Jenkins sets a build number environment variable if devenv @@ -14,10 +15,10 @@ if devenv gem 'jam_ruby', :path => "#{workspace}/jam-ruby" gem 'jam_websockets', :path => "#{workspace}/websocket-gateway" else - gem 'jam_db' - gem 'jampb' - gem 'jam_ruby' - gem 'jam_websockets' + gem 'jam_db', "0.0.#{ENV["BUILD_NUMBER"]}" + gem 'jampb', "0.0.#{ENV["BUILD_NUMBER"]}" + gem 'jam_ruby', "0.0.#{ENV["BUILD_NUMBER"]}" + gem 'jam_websockets', "0.0.#{ENV["BUILD_NUMBER"]}" end gem 'rails', '>=3.2.11' diff --git a/web/build b/web/build index beef77515..71d925869 100755 --- a/web/build +++ b/web/build @@ -1,6 +1,5 @@ #!/bin/bash -echo "updating dependencies" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -11,8 +10,25 @@ mkdir $DIR/target/deb rm -rf vendor/bundle rm -rf tmp/capybara -rm Gemfile.lock # if we don't want versions to float, pin it in the Gemfile, not count on Gemfile.lock +rm -f Gemfile.lock # if we don't want versions to float, pin it in the Gemfile, not count on Gemfile.lock # put all dependencies into vendor/bundle + +# default build number to 1 if not found +if [ -z "$BUILD_NUMBER" ]; then + BUILD_NUMBER="1" +fi + +GEM_VERSION="0.0.${BUILD_NUMBER}" + + +# by putting these gems in vendor/cache, bundle will see them when running 'bundle install' +mkdir -p vendor/cache +cp ../jam-db/target/ruby_package/jam_db-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-db gem"; exit 1; } +cp ../jam-pb/target/ruby/jampb/jampb-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-pb gem"; exit 1; } +cp ../jam-ruby/jam_ruby-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-ruby gem"; exit 1; } +cp ../websocket-gateway/jam_websockets-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy websocket-gateway gem"; exit 1; } + +echo "updating dependencies" bundle install --path vendor/bundle bundle update diff --git a/websocket-gateway/Gemfile b/websocket-gateway/Gemfile index 75ebedf18..620894df2 100644 --- a/websocket-gateway/Gemfile +++ b/websocket-gateway/Gemfile @@ -13,9 +13,9 @@ if devenv gem 'jampb', :path => "#{workspace}/jam-pb/target/ruby/jampb" gem 'jam_ruby', :path => "#{workspace}/jam-ruby" else - gem 'jam_db' - gem 'jampb' - gem 'jam_ruby' + gem 'jam_db', "0.0.#{ENV["BUILD_NUMBER"]}" + gem 'jampb', "0.0.#{ENV["BUILD_NUMBER"]}" + gem 'jam_ruby', "0.0.#{ENV["BUILD_NUMBER"]}" end diff --git a/websocket-gateway/build b/websocket-gateway/build index 0cb842ea4..9780227f4 100755 --- a/websocket-gateway/build +++ b/websocket-gateway/build @@ -6,7 +6,20 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" rm -rf $DIR/target mkdir $DIR/target mkdir $DIR/target/deb - + +# default build number to 1 if not found +if [ -z "$BUILD_NUMBER" ]; then + BUILD_NUMBER="1" +fi + +GEM_VERSION="0.0.${BUILD_NUMBER}" + +# by putting these gems in vendor/cache, bundle will see them when running 'bundle install' +mkdir -p vendor/cache +cp ../jam-db/target/ruby_package/jam_db-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-db gem"; exit 1; } +cp ../jam-pb/target/ruby/jampb/jampb-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-pb gem"; exit 1; } +cp ../jam-ruby/jam_ruby-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-ruby gem"; exit 1; } + # put all dependencies into vendor/bundle rm -rf vendor/bundle echo "updating dependencies"