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' }