You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2014/12/05 20:50:29 UTC

[3/5] buildr git commit: Publish releases according to the new Apache process

Publish releases according to the new Apache process


Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/faef3178
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/faef3178
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/faef3178

Branch: refs/heads/master
Commit: faef317868a8beaa4621b52c92f11b40db3f469d
Parents: 993f29e
Author: Peter Donald <pe...@realityforge.org>
Authored: Sat Dec 6 06:39:41 2014 +1100
Committer: Peter Donald <pe...@realityforge.org>
Committed: Sat Dec 6 06:39:41 2014 +1100

----------------------------------------------------------------------
 .gitignore           |  1 +
 rakelib/release.rake | 47 +++++++++++++++++++++++++++++++----------------
 2 files changed, 32 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/buildr/blob/faef3178/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 0bcebfe..9f5516e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 /announce-email.txt
 /vote-email.txt
 /rake
+/dist
 /pkg
 /failed
 /buildr.pdf

http://git-wip-us.apache.org/repos/asf/buildr/blob/faef3178/rakelib/release.rake
----------------------------------------------------------------------
diff --git a/rakelib/release.rake b/rakelib/release.rake
index 69fd85b..15333eb 100644
--- a/rakelib/release.rake
+++ b/rakelib/release.rake
@@ -13,8 +13,25 @@
 # License for the specific language governing permissions and limitations under
 # the License.
 
-desc "Release the next version of buildr from existing staged repository"
-task 'release' => %w{setup-local-site-svn} do
+desc 'Checkout or update dist to local directory'
+task 'setup-local-dist-svn' do
+  if File.exist?('dist')
+    sh 'svn', 'up', 'site'
+    sh 'svn', 'revert', '--recursive', 'dist'
+  else
+    sh 'svn', 'co', 'https://dist.apache.org/repos/dist/release/buildr', 'dist'
+  end
+end
+
+task 'publish-dist-svn' do
+  cd 'dist'
+  sh 'svn', 'add', '--force', '.'
+  cd '..'
+  sh 'svn', 'commit', 'dist', '-m', 'Publish latest release'
+end
+
+desc 'Release the next version of buildr from existing staged repository'
+task 'release' => %w{setup-local-site-svn setup-local-dist-svn} do
   # First, we need to get all the staged files from Apache to _release.
   mkpath '_release'
   lambda do
@@ -26,25 +43,22 @@ task 'release' => %w{setup-local-site-svn} do
 
   # Upload binary and source packages and new Web site
   lambda do
-    target = "people.apache.org:/www/www.apache.org/dist/#{spec.name}/#{spec.version}"
-    puts 'Uploading packages to www.apache.org/dist ...'
-    host, remote_dir = target.split(':')
-    sh 'ssh', host, 'rm', '-rf', remote_dir rescue nil
-    existing_dirs = `ssh #{host} ls #{File.dirname(remote_dir)}`.split
-    sh 'ssh', host, 'mkdir', remote_dir
+    target = "dist/#{spec.version}"
+    puts "Copying packages to #{target}"
+    FileUtils.rm_rf(target)
+    existing_dirs = `ls dist`.split
+    FileUtils.mkdir_p(target)
     sh 'rsync', '--progress', '--recursive', '--delete', "_release/#{spec.version}/dist/", target
-    sh 'ssh', 'people.apache.org', 'chmod', '-f', '-R', 'g+w', "#{remote_dir}/*"
-    puts '[X] Uploaded packages to www.apache.org/dist'
+    sh 'chmod', '-f', '-R', 'g+w', target
+    puts "[X] Copying packages to #{target}"
 
     puts "[X] Removing existing packages #{existing_dirs.join(', ')}"
     existing_dirs.each do |dir|
-      sh 'ssh', host, 'rm', '-rf', "#{File.dirname(remote_dir)}/#{dir}" rescue nil
+      sh 'svn', 'rm', '--force', "dist/#{dir}"
     end
-
-    puts "Uploading new site to #{spec.name}.apache.org ..."
-    sh 'rsync', '--progress', '--recursive', '--exclude', '.svn', '--delete', "_release/#{spec.version}/site/", 'site'
-    task('publish-site-svn').invoke
-    puts "[X] Uploaded new site to #{spec.name}.apache.org"
+    puts "Publishing #{spec.name}"
+    task('publish-dist-svn').invoke
+    puts "[X] Publishing #{spec.name}"
   end.call
 
   # Push gems to Rubyforge.org
@@ -157,5 +171,6 @@ The Apache Buildr Team
   end.call
 end
 
+task('clobber') { rm_rf 'dist' }
 task('clobber') { rm_rf '_release' }
 task('clobber') { rm_rf 'announce-email.txt' }