travis-build-tools 1.0.30.0 → 2.0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/travis-build-tools/builder.rb +50 -0
- data/lib/travis-build-tools/dsl.rb +0 -31
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWQ4MTc0NWJlMjFmODI3MjgwMmFkMTE4YzhhODAzY2ZkNzcyNmU0YQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjdmMmI2NWI0ZTc5MTAwY2Q4NGU1NzUxNzYzYWEyYWQ3YWZhNjBlZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmI5MWY3MjQ4ZjgxMmFiZGMzMmVhMjJkY2NhMWEzODI4ZmVjNTE1ODdlNmI4
|
10
|
+
OWU2YmQ5MmNmOTg3Y2ZhZWVjYzdmMGZlMDBiMzRlMDhiYWM0ODljM2NjMDQ2
|
11
|
+
NmVmZjMyN2U5OTIzNjBmYzVmMzEyNmUyMTM3ZDM4NmJhNWQ1YzQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YzQ0MmMxNGY4OTkzMDU2MjI5ZTRjZmMxYjhlZGY3YzRkMDZkYTQ1YzFmNzkz
|
14
|
+
MTE4ZmJlZTc4YWJkMGQ4NzE3NTE3YTg4MzEyNmQ3ODZkYzg0ZmUzZGEwNTgz
|
15
|
+
NzVmYTYzYTI3MDNmZjNiN2YyODg2MGYzMTdmZWY5NTUwMTgzMzA=
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module TravisBuildTools
|
2
|
+
class Builder
|
3
|
+
def initialize(service_user, git_repository = nil)
|
4
|
+
@service_user = service_user
|
5
|
+
origin_url = %x[git config --get remote.origin.url]
|
6
|
+
@git_repository = git_repository || origin_url.split('://')[1] || origin_url.split('@')[1]
|
7
|
+
|
8
|
+
raise 'git_repository is not specified' if !@git_repository
|
9
|
+
raise 'service_user is not specified' if !@service_user
|
10
|
+
end
|
11
|
+
|
12
|
+
def publish_git_tag(tag_name)
|
13
|
+
if ENV['TRAVIS'] && ENV['TRAVIS_PULL_REQUEST'].match(/false/i)
|
14
|
+
raise 'tag_name is not specified' if !tag_name
|
15
|
+
|
16
|
+
#Setup up deploy
|
17
|
+
puts %x[git config --global user.email "builds@travis-ci.com"]
|
18
|
+
puts %x[git config --global user.name "Travis CI"]
|
19
|
+
puts %x[git tag #{tag_name} -a -m "Generated tag from TravisCI."]
|
20
|
+
puts "Pushing Git tag #{tag_name}."
|
21
|
+
|
22
|
+
%x[git push --tags --quiet https://#{@service_user}@#{@git_repository} #{tag_name} > /dev/null 2>&1]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def merge_downstream(release_branch_name, master_branch_name)
|
27
|
+
if ENV['TRAVIS'] && ENV['TRAVIS_PULL_REQUEST'].match(/false/i)
|
28
|
+
#get all branches
|
29
|
+
branches = %x[git ls-remote --heads origin].scan(/^.*refs\/heads\/(.*)$/).flatten
|
30
|
+
matching_branches = branches.select{|b| b.match(/#{Regexp.quote(release_branch_name)}/)}
|
31
|
+
|
32
|
+
#If this branch doesn't match the downstream then ignore creating the merge
|
33
|
+
return if !matching_branches.include?(ENV['TRAVIS_BRANCH'])
|
34
|
+
|
35
|
+
#Sort the branches by the match that comes after the release branch name
|
36
|
+
sorted_branches = matching_branches.map{|b| Gem::Version.new(b.match(/#{Regexp.quote(release_branch_name)}(.*)$/)[1].strip)}
|
37
|
+
|
38
|
+
#Find the next branch in the array that isn't the current branch
|
39
|
+
current_release_version = Gem::Version.new(ENV['TRAVIS_BRANCH'].match(/#{Regexp.quote(release_branch_name)}(.*)$/)[1].strip)
|
40
|
+
next_branch_to_merge = (sorted_branches.drop_while{|b| b <= current_release_version}.map{|v| release_branch_name + v.to_s} + ['master']).first
|
41
|
+
|
42
|
+
#create a merge commit for that branch
|
43
|
+
puts %x[git merge --no-ff origin/#{next_branch_to_merge}]
|
44
|
+
puts "Merging to downstream branch: #{next_branch_to_merge}"
|
45
|
+
#push origin for that branch using the service user
|
46
|
+
%x[git push --quiet https://#{@service_user}@#{@git_repository} HEAD:#{next_branch_to_merge} > /dev/null 2>&1]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,35 +1,4 @@
|
|
1
1
|
module TravisBuildTools
|
2
2
|
module DSL
|
3
|
-
def publish_git_tag(*args, &block)
|
4
|
-
PublishGitTagTask.define_task(*args, &block)
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
class PublishGitTagTask < Rake::Task
|
9
|
-
attr_accessor :service_user
|
10
|
-
attr_accessor :tag_name
|
11
|
-
attr_accessor :git_repository
|
12
|
-
|
13
|
-
def initialize(task_name, app)
|
14
|
-
super(task_name, app)
|
15
|
-
end
|
16
|
-
|
17
|
-
def execute(args=nil)
|
18
|
-
super(args)
|
19
|
-
|
20
|
-
if ENV['TRAVIS'] && ENV['TRAVIS_PULL_REQUEST'].match(/false/i)
|
21
|
-
raise 'service_user is not specified' if !@service_user
|
22
|
-
raise 'tag_name is not specified' if !@tag_name
|
23
|
-
raise 'git_repository is not specified' if !@git_repository
|
24
|
-
|
25
|
-
#Setup up deploy
|
26
|
-
puts %x[git config --global user.email "builds@travis-ci.com"]
|
27
|
-
puts %x[git config --global user.name "Travis CI"]
|
28
|
-
puts %x[git tag #{tag_name} -a -m "Generated tag from TravisCI."]
|
29
|
-
puts "Pushing Git tag #{tag_name}."
|
30
|
-
|
31
|
-
%x[git push --tags --quiet https://#{service_user}@#{git_repository} #{tag_name} > /dev/null 2>&1]
|
32
|
-
end
|
33
|
-
end
|
34
3
|
end
|
35
4
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: travis-build-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.38.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Warren Parad
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -62,6 +62,7 @@ extra_rdoc_files: []
|
|
62
62
|
files:
|
63
63
|
- lib/travis-build-tools.rb
|
64
64
|
- lib/travis-build-tools/build.rb
|
65
|
+
- lib/travis-build-tools/builder.rb
|
65
66
|
- lib/travis-build-tools/dsl.rb
|
66
67
|
- lib/travis-build-tools/zip_file_generator.rb
|
67
68
|
homepage: https://github.com/wparad/Travis-Build-Tools
|