5. Bundler
• Pontos verzió megadás
– gem 'mysql2', '=0.2.6'
• Esetleg minor verzió váltás
– gem 'will_paginate', '~>3.0.pre2'
• Fejlesztői gem-ek külön
– group :development do
13. szerverek
● SSH / SCP
● Mindenhol azonos verziók
● Mindenhol azonos csomagok
● Egységes update policy
● Staging: build server is lehet, dev
csomagok, esetleg debug
● Production: csak ami a futtatáshoz
kell
15. deployment
deploy.rb
● set :stages, %w(staging production)
● require 'capistrano/ext/multistage'
● set :application, "APP_NAME"
● set :deploy_via, :copy
● set :copy_cache, true
● set :copy_exclude, [".svn", "*/.svn", "log"]
● set :copy_via, :scp
● set :rake, "bundle exec rake"
16. deployment
Capfile
● after 'deploy:setup', 'deploy:create_shared_dirs'
● after 'deploy:update_code', 'deploy:finalize_code'
● after 'deploy:finalize_code', 'deploy:setup_cron'
● after 'deploy:finalize_code', 'deploy:web:disable'
● after 'deploy:start', 'deploy:web:enable'
17. Capistrano tests
● Minden jól le is futott?
● Jogosultságok
● Process-ek
● Integrity check
● deploy:check hook-ok
● Rollback esetek is!
18. CI
● 2 CI server
● Instant build
● Automatizált tesztek (rspec, cucumber)
● Azonnal előjönnek a hibák
● Gyors javítási lehetőség
● Komplex, hosszan futó tesztek kihagyása
● Daily build
● Naponta csak 1x fut le
● A hosszan futó tesztek csak itt
● Metrikák – metrics_fu gem
● SVN analízis - svnstat
19. CI
● Build game
● Nabaztag notifier
● Gyula
http://vimeo.com/17637539
20. Mit automatizáljunk?
● Tesztek
● Continous Integration
● Sikeres daily build esetén – auto staging
deploy
● Deployment
● De mindig kell manuális tesztelés is!