Class: Buildizer::Ci::Travis
Defined Under Namespace
Modules: DockerCacheMod, PackageCloudMod, PackageVersionTagMod
Instance Attribute Summary
Attributes inherited from Base
#packager
Class Method Summary
collapse
Instance Method Summary
collapse
#require_tag_setup!, #require_tag_var, #require_tag_var_name, #require_tag_var_upsert
#docker_cache_setup!, included
included, #package_cloud_setup!, #package_cloud_token_var, #package_cloud_token_var_delete!, #package_cloud_token_var_name, #package_cloud_token_var_update!
Methods inherited from Base
#buildizer_install_instructions, #ci_name, #conf, #conf_file_name, #conf_path, #docker_cache_setup!, #git_tag, #initialize, #package_cloud_setup!
Class Method Details
.ci_name ⇒ Object
5
6
7
|
# File 'lib/buildizer/ci/travis.rb', line 5
def ci_name
'travis'
end
|
.env_vars(prefix:, **kwargs) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/buildizer/ci/travis.rb', line 9
def env_vars(prefix:, **kwargs)
kwargs.each do |name, var_name|
define_method("#{prefix}_#{name}_var") {repo.env_vars[var_name]}
define_method("#{prefix}_#{name}_var_name") {var_name}
define_method("#{prefix}_#{name}_var_delete!") do
var = send("#{prefix}_#{name}_var")
var.delete if var
end
define_method("#{prefix}_#{name}_var_update!") do |value, **kwargs|
if value
repo.env_vars.upsert(var_name, value, **kwargs)
else
send("#{prefix}_#{name}_var_delete!")
end
end
end
end
|
Instance Method Details
#_git_tag ⇒ Object
75
76
77
|
# File 'lib/buildizer/ci/travis.rb', line 75
def _git_tag
ENV['TRAVIS_TAG']
end
|
#actual_conf ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/buildizer/ci/travis.rb', line 45
def actual_conf
install = [
'sudo apt-get update',
'sudo apt-get install -y apt-transport-https ca-certificates',
'sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D',
'echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list',
'sudo apt-get update',
'sudo apt-get -o dpkg::options::="--force-confnew" install -y docker-engine=1.9.1-0~trusty',
'echo "docker-engine hold" | sudo dpkg --set-selections',
]
install.push(*Array(buildizer_install_instructions(master: packager.project_settings['master'])))
env = packager.targets.map {|t| "BUILDIZER_TARGET=#{t}"}
conf.merge(
'dist' => 'trusty',
'sudo' => 'required',
'cache' => 'apt',
'language' => 'ruby',
'rvm' => '2.2.1',
'install' => install,
'before_script' => 'buildizer prepare',
'script' => 'buildizer build',
'env' => env,
'after_success' => 'buildizer deploy',
)
end
|
#configuration_actual? ⇒ Boolean
41
42
43
|
# File 'lib/buildizer/ci/travis.rb', line 41
def configuration_actual?
conf == actual_conf
end
|
#login ⇒ Object
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# File 'lib/buildizer/ci/travis.rb', line 91
def login
@logged_in ||= begin
packager.with_log(desc: "Login into travis") do |&fin|
packager.user_settings['travis'] ||= {}
if packager.cli.options['reset_github_token']
packager.user_settings['travis'].delete('github_token')
packager.user_settings_save!
end
packager.user_settings['travis']['github_token'] ||= begin
reset_github_token = true
packager.cli.ask("GitHub access token:", echo: false).tap{puts}
end
::Travis.github_auth(packager.user_settings['travis']['github_token'])
packager.user_settings_save! if reset_github_token
fin.call "LOGGED IN: #{::Travis::User.current.name}"
end
true
end
end
|
#repo ⇒ Object
87
88
89
|
# File 'lib/buildizer/ci/travis.rb', line 87
def repo
::Travis::Repository.find(repo_name)
end
|
#repo_name ⇒ Object
79
80
81
82
83
84
85
|
# File 'lib/buildizer/ci/travis.rb', line 79
def repo_name
packager.git_remote_url.split(':')[1].split('.')[0]
rescue
raise Error, error: :input_error,
message: "unable to determine travis repo name " +
"from git remote url #{packager.git_remote_url}"
end
|
#setup! ⇒ Object
36
37
38
39
|
# File 'lib/buildizer/ci/travis.rb', line 36
def setup!
packager.write_path(conf_path, YAML.dump(actual_conf))
require_tag_setup!
end
|
#with_travis(&blk) ⇒ Object
116
117
118
119
120
121
|
# File 'lib/buildizer/ci/travis.rb', line 116
def with_travis(&blk)
login
yield
rescue ::Travis::Client::Error => err
raise Error, message: "travis: #{err.message}"
end
|