travis_github_deployer 0.2.2 → 0.2.3
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.
@@ -34,7 +34,7 @@ class TravisGithubDeployer
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def files_to_deploy
|
37
|
-
@files_to_deploy
|
37
|
+
@files_to_deploy ||= {}
|
38
38
|
end
|
39
39
|
|
40
40
|
## Deployment
|
@@ -58,7 +58,22 @@ class TravisGithubDeployer
|
|
58
58
|
def load_configuration
|
59
59
|
configuration = YAML.load_file(".travis_github_deployer.yml")
|
60
60
|
@destination_repository = configuration["destination_repository"]
|
61
|
-
|
61
|
+
prepare_files_to_deploy(configuration["files_to_deploy"])
|
62
|
+
end
|
63
|
+
|
64
|
+
def prepare_files_to_deploy files_hash
|
65
|
+
files_hash.each { |source_file_from_configuration, destination_file|
|
66
|
+
|
67
|
+
source_files = Dir.glob(source_file_from_configuration)
|
68
|
+
|
69
|
+
if source_files.empty?
|
70
|
+
raise StandardError.new("File: '#{source_file_from_configuration}' found in the configuration didn't exist. Deploy failed.")
|
71
|
+
end
|
72
|
+
|
73
|
+
source_files.each { |source_file|
|
74
|
+
files_to_deploy[source_file] = destination_file
|
75
|
+
}
|
76
|
+
}
|
62
77
|
end
|
63
78
|
|
64
79
|
def command_line_arguments(arguments)
|
@@ -108,7 +123,7 @@ class TravisGithubDeployer
|
|
108
123
|
files_to_deploy.each { |source_location, destination_location|
|
109
124
|
source = Pathname.new(source_location)
|
110
125
|
destination = Pathname.new(destination_repository_dir)
|
111
|
-
destination += destination_location
|
126
|
+
destination += destination_location
|
112
127
|
FileUtils.copy(source, destination)
|
113
128
|
}
|
114
129
|
|
@@ -121,10 +136,4 @@ class TravisGithubDeployer
|
|
121
136
|
git.commit("File deployed with Travis Github Deployer")
|
122
137
|
git.push
|
123
138
|
end
|
124
|
-
|
125
|
-
end
|
126
|
-
|
127
|
-
|
128
|
-
if __FILE__ == $0 then
|
129
|
-
GithubPagesDeployer.new.deploy
|
130
139
|
end
|
@@ -54,7 +54,6 @@ describe "simple ruby interface around git command line" do
|
|
54
54
|
subject.git("something")
|
55
55
|
end
|
56
56
|
|
57
|
-
|
58
57
|
it "Should be able to do a successful command" do
|
59
58
|
subject.should_not_receive(:puts)
|
60
59
|
subject.git('version').should start_with("git version")
|
@@ -65,6 +64,4 @@ describe "simple ruby interface around git command line" do
|
|
65
64
|
subject.git('error')
|
66
65
|
}.to raise_error(StandardError, "Git command: 'error' failed. Message: : git: 'error' is not a git command. See 'git --help'.\n\nDid you mean this?\n rerere\n")
|
67
66
|
end
|
68
|
-
|
69
|
-
|
70
|
-
end
|
67
|
+
end
|
@@ -8,6 +8,7 @@ describe "travis github deployer" do
|
|
8
8
|
before(:each) do
|
9
9
|
@git = mock
|
10
10
|
GitCommandLine.should_receive(:new).and_return(@git)
|
11
|
+
subject
|
11
12
|
end
|
12
13
|
|
13
14
|
it "can deploy to an destination repository" do
|
@@ -83,19 +84,17 @@ describe "travis github deployer" do
|
|
83
84
|
context "Prepare the changes that need to be made commit" do
|
84
85
|
|
85
86
|
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")
|
87
87
|
subject.should_receive(:files_to_deploy).and_return( { "sourcefile" => ""})
|
88
|
-
FileUtils.should_receive(:copy).with(Pathname.new("sourcefile"), Pathname.new("
|
88
|
+
FileUtils.should_receive(:copy).with(Pathname.new("sourcefile"), Pathname.new("travis_github_deployer_repository"))
|
89
89
|
subject.copy_files_in_destination_repository
|
90
90
|
end
|
91
91
|
|
92
92
|
it "Should be able to copy multiple files" do
|
93
|
-
subject.should_receive(:destination_repository_dir).exactly(2).times.and_return("destdir")
|
94
93
|
subject.should_receive(:files_to_deploy).and_return({ "dir/onefile" => "destonefile", "twofile" => "dir/desttwofile"})
|
95
|
-
FileUtils.should_receive(:copy).with(Pathname.new("dir/onefile"), Pathname.new("
|
96
|
-
FileUtils.should_receive(:copy).with(Pathname.new("twofile"), Pathname.new("
|
94
|
+
FileUtils.should_receive(:copy).with(Pathname.new("dir/onefile"), Pathname.new("travis_github_deployer_repository/destonefile"))
|
95
|
+
FileUtils.should_receive(:copy).with(Pathname.new("twofile"), Pathname.new("travis_github_deployer_repository/dir/desttwofile"))
|
97
96
|
subject.copy_files_in_destination_repository
|
98
|
-
end
|
97
|
+
end
|
99
98
|
end
|
100
99
|
|
101
100
|
context "Actually committing the files" do
|
@@ -120,13 +119,29 @@ describe "travis github deployer" do
|
|
120
119
|
}
|
121
120
|
|
122
121
|
YAML.should_receive(:load_file).with(".travis_github_deployer.yml").and_return(configuration)
|
122
|
+
subject.should_receive(:prepare_files_to_deploy).with({"source_dir/source_file" => "destination_dir/destination_file"})
|
123
123
|
subject.load_configuration
|
124
124
|
|
125
125
|
subject.destination_repository.should== "https://github.com/cpputest/cpputest.github.io.git"
|
126
|
-
subject.files_to_deploy.should== { "source_dir/source_file" => "destination_dir/destination_file" }
|
127
126
|
|
128
127
|
end
|
129
128
|
|
129
|
+
it "can have files with wildcards in the configuration" do
|
130
|
+
wild_card_files = { "source_dir/*" => "destination_dir" }
|
131
|
+
Dir.should_receive(:glob).with("source_dir/*").and_return(["file1", "file2"])
|
132
|
+
|
133
|
+
subject.prepare_files_to_deploy(wild_card_files)
|
134
|
+
subject.files_to_deploy.should== { "file1" => "destination_dir", "file2" => "destination_dir" }
|
135
|
+
end
|
136
|
+
|
137
|
+
it "raises an error when one of the source files doesn't exists" do
|
138
|
+
Dir.should_receive(:glob).with("not_exists").and_return([])
|
139
|
+
expect {
|
140
|
+
subject.prepare_files_to_deploy( { "not_exists" => "" })
|
141
|
+
}.to raise_error(StandardError, "File: 'not_exists' found in the configuration didn't exist. Deploy failed.")
|
142
|
+
end
|
143
|
+
|
144
|
+
|
130
145
|
it "isn't verbose by default" do
|
131
146
|
subject.command_line_arguments([""])
|
132
147
|
subject.verbose.should == false
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: travis_github_deployer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Bas Vodde
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-07-
|
13
|
+
date: 2013-07-19 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|