travis_github_deployer 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,18 @@ class GitCommandLine
|
|
10
10
|
git("config #{key} '#{value}'")
|
11
11
|
end
|
12
12
|
|
13
|
+
def add(filename)
|
14
|
+
git("add #{filename}")
|
15
|
+
end
|
16
|
+
|
17
|
+
def commit(message)
|
18
|
+
git("commit -m \"#{message}\"")
|
19
|
+
end
|
20
|
+
|
21
|
+
def push
|
22
|
+
git("push")
|
23
|
+
end
|
24
|
+
|
13
25
|
def config_username(username)
|
14
26
|
config("user.name", username)
|
15
27
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby -w
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
+
require 'pathname'
|
5
|
+
require 'fileutils'
|
4
6
|
|
5
7
|
class TravisGithubDeployer
|
6
8
|
|
@@ -86,7 +88,7 @@ class TravisGithubDeployer
|
|
86
88
|
|
87
89
|
files_to_deploy.each { |source_location, destination_location|
|
88
90
|
source = Pathname.new(source_location)
|
89
|
-
destination = Pathname.new(
|
91
|
+
destination = Pathname.new(destination_repository_dir)
|
90
92
|
destination += destination_location.empty? ? source_location : destination_location
|
91
93
|
FileUtils.copy(source, destination)
|
92
94
|
}
|
@@ -10,6 +10,21 @@ describe "simple ruby interface around git command line" do
|
|
10
10
|
subject.clone("repository", "destination")
|
11
11
|
end
|
12
12
|
|
13
|
+
it "can add files" do
|
14
|
+
subject.should_receive(:git).with("add filename")
|
15
|
+
subject.add("filename")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "can commit" do
|
19
|
+
subject.should_receive(:git).with('commit -m "message"')
|
20
|
+
subject.commit("message")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "can push" do
|
24
|
+
subject.should_receive(:git).with("push")
|
25
|
+
subject.push
|
26
|
+
end
|
27
|
+
|
13
28
|
it "can do a config" do
|
14
29
|
subject.should_receive(:git).with("config key 'value'")
|
15
30
|
subject.config("key", "value")
|
@@ -83,19 +83,29 @@ describe "travis github deployer" do
|
|
83
83
|
context "Prepare the changes that need to be made commit" do
|
84
84
|
|
85
85
|
it "should be able to copy a file from the root of the source repository to the root of the destination reportistory" do
|
86
|
+
subject.should_receive(:destination_repository_dir).and_return("destdir")
|
86
87
|
subject.should_receive(:files_to_deploy).and_return( { "sourcefile" => ""})
|
87
|
-
FileUtils.should_receive(:copy).with(Pathname.new("sourcefile"), Pathname.new("
|
88
|
+
FileUtils.should_receive(:copy).with(Pathname.new("sourcefile"), Pathname.new("destdir/sourcefile"))
|
88
89
|
subject.copy_files_in_destination_repository
|
89
90
|
end
|
90
91
|
|
91
92
|
it "Should be able to copy multiple files" do
|
93
|
+
subject.should_receive(:destination_repository_dir).exactly(2).times.and_return("destdir")
|
92
94
|
subject.should_receive(:files_to_deploy).and_return({ "dir/onefile" => "destonefile", "twofile" => "dir/desttwofile"})
|
93
|
-
FileUtils.should_receive(:copy).with(Pathname.new("dir/onefile"), Pathname.new("
|
94
|
-
FileUtils.should_receive(:copy).with(Pathname.new("twofile"), Pathname.new("
|
95
|
+
FileUtils.should_receive(:copy).with(Pathname.new("dir/onefile"), Pathname.new("destdir/destonefile"))
|
96
|
+
FileUtils.should_receive(:copy).with(Pathname.new("twofile"), Pathname.new("destdir/dir/desttwofile"))
|
95
97
|
subject.copy_files_in_destination_repository
|
96
98
|
end
|
97
99
|
end
|
98
100
|
|
101
|
+
context "Actually committing the files" do
|
102
|
+
|
103
|
+
it "can add, commit and push up the files" do
|
104
|
+
|
105
|
+
subject.commit_and_push_files
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
99
109
|
it "can read configuration parameters out of the .travis_github_deployer.yml" do
|
100
110
|
configuration = {
|
101
111
|
"destination_repository" => "https://github.com/cpputest/cpputest.github.io.git",
|