Skip to content

Commit c9390db

Browse files
Synchronize Python versions between pyenv.rb and attributes/default.rb
1 parent 424dbcf commit c9390db

File tree

2 files changed

+58
-59
lines changed

2 files changed

+58
-59
lines changed

β€Žcookbooks/travis_ci_freebsd_14/attributes/default.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,21 @@
2525
pythons = %w[
2626
3.7.17
2727
3.8.18
28-
3.9.18
29-
3.12.4
28+
3.9.19
29+
3.10.13
30+
3.11.8
31+
3.12.5
32+
3.13.0
3033
]
3134

3235
override['travis_build_environment']['go']['versions'] = go_versions
3336
override['travis_build_environment']['go']['default_version'] = go_versions.max
3437

3538
override['travis_build_environment']['pythons'] = pythons
39+
40+
# Ustaw globalnΔ… wersjΔ™ Pythona jako atrybut
41+
override['travis_build_environment']['global_python'] = '3.8.18'
42+
3643
override['travis_build_environment']['python_aliases'] = {
3744
'2.7.15' => %w[2.7],
3845
'3.6.10' => %w[3.6],

β€Žcookbooks/travis_ci_freebsd_14/recipes/pyenv.rb

Lines changed: 49 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# frozen_string_literal: true
22

3-
# Define log color codes
43
RED = "\e[31m"
54
GREEN = "\e[32m"
65
YELLOW = "\e[33m"
@@ -10,13 +9,13 @@
109
RESET = "\e[0m"
1110
PREFIX = "[PYENV-SETUP]"
1211

13-
Chef::Log.info("#{CYAN}#{PREFIX} πŸš€ Starting pyenv installation process#{RESET}")
12+
Chef::Log.info("#{CYAN}#{PREFIX} Starting pyenv installation process#{RESET}")
1413

1514
pyenv_installer_path = ::File.join(
1615
Chef::Config[:file_cache_path], 'pyenv-installer'
1716
)
1817

19-
Chef::Log.info("#{BLUE}#{PREFIX} πŸ“₯ Downloading pyenv installer to #{pyenv_installer_path}#{RESET}")
18+
Chef::Log.info("#{BLUE}#{PREFIX} Downloading pyenv installer to #{pyenv_installer_path}#{RESET}")
2019
remote_file pyenv_installer_path do
2120
source node['travis_python']['pyenv_install_url']
2221
owner node['travis_build_environment']['user']
@@ -27,12 +26,12 @@
2726

2827
ruby_block 'log_pyenv_download' do
2928
block do
30-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Pyenv installer downloaded successfully to #{pyenv_installer_path}#{RESET}")
29+
Chef::Log.info("#{GREEN}#{PREFIX} Pyenv installer downloaded successfully to #{pyenv_installer_path}#{RESET}")
3130
end
3231
action :nothing
3332
end
3433

35-
Chef::Log.info("#{BLUE}#{PREFIX} πŸ”§ Running pyenv installer script#{RESET}")
34+
Chef::Log.info("#{BLUE}#{PREFIX} Running pyenv installer script#{RESET}")
3635
bash 'install_pyenv' do
3736
code pyenv_installer_path.to_s
3837
user node['travis_build_environment']['user']
@@ -47,15 +46,15 @@
4746
block do
4847
pyenv_path = "#{node['travis_build_environment']['home']}/.pyenv"
4948
if ::File.directory?(pyenv_path)
50-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Pyenv successfully installed to #{pyenv_path}#{RESET}")
49+
Chef::Log.info("#{GREEN}#{PREFIX} Pyenv successfully installed to #{pyenv_path}#{RESET}")
5150
else
52-
Chef::Log.error("#{RED}#{PREFIX} ❌ Failed to install pyenv to #{pyenv_path}#{RESET}")
51+
Chef::Log.error("#{RED}#{PREFIX} Failed to install pyenv to #{pyenv_path}#{RESET}")
5352
end
5453
end
5554
action :nothing
5655
end
5756

58-
Chef::Log.info("#{BLUE}#{PREFIX} πŸ”„ Creating symlink to pyenv at /opt/pyenv#{RESET}")
57+
Chef::Log.info("#{BLUE}#{PREFIX} Creating symlink to pyenv at /opt/pyenv#{RESET}")
5958
link '/opt/pyenv' do
6059
to "#{node['travis_build_environment']['home']}/.pyenv"
6160
owner node['travis_build_environment']['user']
@@ -67,9 +66,9 @@
6766
ruby_block 'log_symlink_result' do
6867
block do
6968
if ::File.symlink?('/opt/pyenv')
70-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Symlink to pyenv created successfully#{RESET}")
69+
Chef::Log.info("#{GREEN}#{PREFIX} Symlink to pyenv created successfully#{RESET}")
7170
else
72-
Chef::Log.error("#{RED}#{PREFIX} ❌ Failed to create symlink to pyenv#{RESET}")
71+
Chef::Log.error("#{RED}#{PREFIX} Failed to create symlink to pyenv#{RESET}")
7372
end
7473
end
7574
action :nothing
@@ -80,7 +79,7 @@
8079
'.bash_profile'
8180
)
8281

83-
Chef::Log.info("#{BLUE}#{PREFIX} βš™οΈ Adding pyenv to PATH in #{bash_profile}#{RESET}")
82+
Chef::Log.info("#{BLUE}#{PREFIX} Adding pyenv to PATH in #{bash_profile}#{RESET}")
8483
bash 'export_path_to_pyenv' do
8584
code "echo 'export PATH=#{node['travis_build_environment']['home']}/.pyenv/bin:$PATH' >> #{bash_profile}"
8685
user node['travis_build_environment']['user']
@@ -90,12 +89,12 @@
9089

9190
ruby_block 'log_path_export' do
9291
block do
93-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Pyenv PATH export added to bash profile#{RESET}")
92+
Chef::Log.info("#{GREEN}#{PREFIX} Pyenv PATH export added to bash profile#{RESET}")
9493
end
9594
action :nothing
9695
end
9796

98-
Chef::Log.info("#{BLUE}#{PREFIX} βš™οΈ Adding pyenv init to bash profile#{RESET}")
97+
Chef::Log.info("#{BLUE}#{PREFIX} Adding pyenv init to bash profile#{RESET}")
9998
bash 'add_pyenv_init_to_bash_profile' do
10099
code "echo 'eval \"$(pyenv init -)\"' >> #{bash_profile}"
101100
user node['travis_build_environment']['user']
@@ -105,12 +104,12 @@
105104

106105
ruby_block 'log_pyenv_init' do
107106
block do
108-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Pyenv init added to bash profile#{RESET}")
107+
Chef::Log.info("#{GREEN}#{PREFIX} Pyenv init added to bash profile#{RESET}")
109108
end
110109
action :nothing
111110
end
112111

113-
Chef::Log.info("#{BLUE}#{PREFIX} βš™οΈ Adding virtualenv init to bash profile#{RESET}")
112+
Chef::Log.info("#{BLUE}#{PREFIX} Adding virtualenv init to bash profile#{RESET}")
114113
bash 'add_virtualenv_init_to_bash_profile' do
115114
code "echo 'eval \"$(pyenv virtualenv-init -)\"' >> #{bash_profile}"
116115
user node['travis_build_environment']['user']
@@ -120,33 +119,25 @@
120119

121120
ruby_block 'log_virtualenv_init' do
122121
block do
123-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Pyenv virtualenv-init added to bash profile#{RESET}")
122+
Chef::Log.info("#{GREEN}#{PREFIX} Pyenv virtualenv-init added to bash profile#{RESET}")
124123
end
125124
action :nothing
126125
end
127126

128-
pyenv_versions = %w[
129-
3.7.17
130-
3.8.18
131-
3.9.19
132-
3.10.13
133-
3.11.8
134-
3.12.5
135-
3.13.0
136-
]
127+
pyenv_versions = node['travis_build_environment']['pythons']
137128

138-
Chef::Log.info("#{MAGENTA}#{PREFIX} πŸ“‹ Installing Python versions: #{pyenv_versions.join(', ')}#{RESET}")
129+
Chef::Log.info("#{MAGENTA}#{PREFIX} Installing Python versions: #{pyenv_versions.join(', ')}#{RESET}")
139130
pyenv_versions.each do |version|
140-
Chef::Log.info("#{YELLOW}#{PREFIX} ⏳ Starting installation of Python #{version}#{RESET}")
131+
Chef::Log.info("#{YELLOW}#{PREFIX} Starting installation of Python #{version}#{RESET}")
141132
bash "pyenv_install_#{version}" do
142133
code <<-EOH
143134
source #{bash_profile}
144-
echo "#{YELLOW}#{PREFIX} ⏳ Starting installation of Python #{version}#{RESET}"
135+
echo "#{YELLOW}#{PREFIX} Starting installation of Python #{version}#{RESET}"
145136
pyenv install #{version}
146137
if pyenv versions | grep #{version}; then
147-
echo "#{GREEN}#{PREFIX} βœ… Python #{version} installed successfully#{RESET}"
138+
echo "#{GREEN}#{PREFIX} Python #{version} installed successfully#{RESET}"
148139
else
149-
echo "#{RED}#{PREFIX} ❌ Failed to install Python #{version}#{RESET}"
140+
echo "#{RED}#{PREFIX} Failed to install Python #{version}#{RESET}"
150141
exit 1
151142
fi
152143
EOH
@@ -161,22 +152,24 @@
161152

162153
ruby_block "log_python_#{version}_install" do
163154
block do
164-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Completed installation attempt of Python #{version}#{RESET}")
155+
Chef::Log.info("#{GREEN}#{PREFIX} Completed installation attempt of Python #{version}#{RESET}")
165156
end
166157
action :nothing
167158
end
168159
end
169160

170-
Chef::Log.info("#{BLUE}#{PREFIX} πŸ”„ Setting global Python version to 3.8.18#{RESET}")
171-
bash 'pyenv_global_set_to_3.8.18' do
161+
global_python = node['travis_build_environment']['global_python']
162+
163+
Chef::Log.info("#{BLUE}#{PREFIX} Setting global Python version to #{global_python}#{RESET}")
164+
bash 'pyenv_global_set' do
172165
code <<-EOH
173166
source #{bash_profile}
174-
pyenv global 3.8.18
175-
echo "#{BLUE}#{PREFIX} πŸ” Current Python version: $(python --version)#{RESET}"
176-
if [[ "$(python --version 2>&1)" == *"3.8.18"* ]]; then
177-
echo "#{GREEN}#{PREFIX} βœ… Successfully set global Python version to 3.8.18#{RESET}"
167+
pyenv global #{global_python}
168+
echo "#{BLUE}#{PREFIX} Current Python version: $(python --version)#{RESET}"
169+
if [[ "$(python --version 2>&1)" == *"#{global_python}"* ]]; then
170+
echo "#{GREEN}#{PREFIX} Successfully set global Python version to #{global_python}#{RESET}"
178171
else
179-
echo "#{RED}#{PREFIX} ❌ Failed to set global Python version to 3.8.18#{RESET}"
172+
echo "#{RED}#{PREFIX} Failed to set global Python version to #{global_python}#{RESET}"
180173
exit 1
181174
fi
182175
EOH
@@ -191,21 +184,21 @@
191184

192185
ruby_block 'log_global_python' do
193186
block do
194-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Global Python version set to 3.8.18#{RESET}")
187+
Chef::Log.info("#{GREEN}#{PREFIX} Global Python version set to #{global_python}#{RESET}")
195188
end
196189
action :nothing
197190
end
198191

199-
Chef::Log.info("#{BLUE}#{PREFIX} πŸ“¦ Installing virtualenv#{RESET}")
192+
Chef::Log.info("#{BLUE}#{PREFIX} Installing virtualenv#{RESET}")
200193
bash 'pip_install_virtualenv' do
201194
code <<-EOH
202195
source #{bash_profile}
203-
echo "#{BLUE}#{PREFIX} πŸ“¦ Installing virtualenv 15.1.0#{RESET}"
196+
echo "#{BLUE}#{PREFIX} Installing virtualenv 15.1.0#{RESET}"
204197
pip install virtualenv==15.1.0
205198
if pip list | grep virtualenv; then
206-
echo "#{GREEN}#{PREFIX} βœ… Virtualenv 15.1.0 installed successfully#{RESET}"
199+
echo "#{GREEN}#{PREFIX} Virtualenv 15.1.0 installed successfully#{RESET}"
207200
else
208-
echo "#{RED}#{PREFIX} ❌ Failed to install virtualenv#{RESET}"
201+
echo "#{RED}#{PREFIX} Failed to install virtualenv#{RESET}"
209202
exit 1
210203
fi
211204
EOH
@@ -220,43 +213,42 @@
220213

221214
ruby_block 'log_virtualenv_install' do
222215
block do
223-
Chef::Log.info("#{GREEN}#{PREFIX} βœ… Virtualenv installation completed#{RESET}")
216+
Chef::Log.info("#{GREEN}#{PREFIX} Virtualenv installation completed#{RESET}")
224217
end
225218
action :nothing
226219
end
227220

228-
Chef::Log.info("#{CYAN}#{PREFIX} 🏁 Pyenv and Python installation process completed#{RESET}")
221+
Chef::Log.info("#{CYAN}#{PREFIX} Pyenv and Python installation process completed#{RESET}")
229222

230223
ruby_block 'verify_full_installation' do
231224
block do
232-
Chef::Log.info("#{MAGENTA}#{PREFIX} πŸ” Verifying full installation#{RESET}")
225+
Chef::Log.info("#{MAGENTA}#{PREFIX} Verifying full installation#{RESET}")
233226
pyenv_installed = ::File.directory?("#{node['travis_build_environment']['home']}/.pyenv")
234227
symlink_created = ::File.symlink?('/opt/pyenv')
235228

236-
Chef::Log.info("#{pyenv_installed ? GREEN : RED}#{PREFIX} πŸ”Ή Pyenv installed: #{pyenv_installed ? 'βœ…' : '❌'}#{RESET}")
237-
Chef::Log.info("#{symlink_created ? GREEN : RED}#{PREFIX} πŸ”Ή Symlink created: #{symlink_created ? 'βœ…' : '❌'}#{RESET}")
229+
Chef::Log.info("#{pyenv_installed ? GREEN : RED}#{PREFIX} Pyenv installed: #{pyenv_installed ? 'success' : 'failure'}#{RESET}")
230+
Chef::Log.info("#{symlink_created ? GREEN : RED}#{PREFIX} Symlink created: #{symlink_created ? 'success' : 'failure'}#{RESET}")
238231

239232
if pyenv_installed && symlink_created
240-
Chef::Log.info("#{GREEN}#{PREFIX} πŸŽ‰ Installation verification passed#{RESET}")
233+
Chef::Log.info("#{GREEN}#{PREFIX} Installation verification passed#{RESET}")
241234
else
242-
Chef::Log.error("#{RED}#{PREFIX} β›” Installation verification failed#{RESET}")
235+
Chef::Log.error("#{RED}#{PREFIX} Installation verification failed#{RESET}")
243236
end
244237
end
245238
action :run
246239
end
247240

248-
# Final installation report
249241
ruby_block 'installation_summary' do
250242
block do
251243
puts "\n"
252244
puts "#{MAGENTA}#{PREFIX} =============================================#{RESET}"
253-
puts "#{MAGENTA}#{PREFIX} 🎯 PYENV INSTALLATION SUMMARY#{RESET}"
245+
puts "#{MAGENTA}#{PREFIX} PYENV INSTALLATION SUMMARY#{RESET}"
254246
puts "#{MAGENTA}#{PREFIX} =============================================#{RESET}"
255-
puts "#{BLUE}#{PREFIX} πŸ“Œ Pyenv location: #{node['travis_build_environment']['home']}/.pyenv#{RESET}"
256-
puts "#{BLUE}#{PREFIX} πŸ“Œ Symlink: /opt/pyenv#{RESET}"
257-
puts "#{BLUE}#{PREFIX} πŸ“Œ Python versions installed: #{pyenv_versions.join(', ')}#{RESET}"
258-
puts "#{BLUE}#{PREFIX} πŸ“Œ Global Python version: 3.8.18#{RESET}"
259-
puts "#{BLUE}#{PREFIX} πŸ“Œ Bash profile: #{bash_profile}#{RESET}"
247+
puts "#{BLUE}#{PREFIX} Pyenv location: #{node['travis_build_environment']['home']}/.pyenv#{RESET}"
248+
puts "#{BLUE}#{PREFIX} Symlink: /opt/pyenv#{RESET}"
249+
puts "#{BLUE}#{PREFIX} Python versions installed: #{pyenv_versions.join(', ')}#{RESET}"
250+
puts "#{BLUE}#{PREFIX} Global Python version: #{global_python}#{RESET}"
251+
puts "#{BLUE}#{PREFIX} Bash profile: #{bash_profile}#{RESET}"
260252
puts "#{MAGENTA}#{PREFIX} =============================================#{RESET}"
261253
puts "\n"
262254
end

0 commit comments

Comments
Β (0)