Cruisecontrol - problem z całożeniem aplikacji

Cześć,
ściągnałem cruisecontrol.rb
git clone https://github.com/thoughtworks/cruisecontrol.rb

Wszedłem w ten folder, zrobiłem bundle install, następnie utworzyłem katalog test zrobiłem w nim git init.
W nim chciałem stworzyć swoją aplikację, więc wklepałem ./cruise add test -r /home/user/test/ -s git
Niestety nic nie utworzyło, a w momencie builda wywala do logów to:

[quote][info] [2012-01-06 16:31:44] Builder for project ‘test’ started
[error] undefined method []' for nil:NilClass [error] /home/user/projekty/cruisecontrol.rb/lib/source_control/git.rb:78:inblock in current_branch’
[error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:86:in call' [error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:86:inblock in e’
[error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:84:in popen' [error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:84:ine’
[error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:71:in block in execute' [error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:70:inchdir’
[error] /home/user/projekty/cruisecontrol.rb/lib/command_line.rb:70:in execute' [error] /home/user/projekty/cruisecontrol.rb/lib/source_control/abstract_adapter.rb:48:inblock in execute_in_local_copy’
[error] /home/user/projekty/cruisecontrol.rb/lib/source_control/abstract_adapter.rb:47:in chdir' [error] /home/user/projekty/cruisecontrol.rb/lib/source_control/abstract_adapter.rb:47:inexecute_in_local_copy’
[error] /home/user/projekty/cruisecontrol.rb/lib/source_control/git.rb:114:in git' [error] /home/user/projekty/cruisecontrol.rb/lib/source_control/git.rb:77:incurrent_branch’
[error] /home/user/projekty/cruisecontrol.rb/lib/source_control/git.rb:43:in latest_revision' [error] /home/user/projekty/cruisecontrol.rb/app/models/project.rb:298:inbuild_if_necessary’
[error] /home/user/projekty/cruisecontrol.rb/app/models/polling_scheduler.rb:16:in run' [error] /home/user/projekty/cruisecontrol.rb/script/builder:86:inblock in <top (required)>’
[error] /home/user/projekty/cruisecontrol.rb/script/builder:85:in catch' [error] /home/user/projekty/cruisecontrol.rb/script/builder:85:in<top (required)>’
[error] /home/user/projekty/cruisecontrol.rb/lib/cruise_control/init.rb:92:in load' [error] /home/user/projekty/cruisecontrol.rb/lib/cruise_control/init.rb:92:inbuilder’
[error] /home/user/projekty/cruisecontrol.rb/lib/cruise_control/init.rb:12:in run' [error] /home/user/projekty/cruisecontrol.rb/cruise:10:in'[/quote]
Folder test prócz repo .git jest pusty.

Uzywam rvm z rubym 1.9.2p bodaj 136. Może problem jest w tym, że cruisecontrol używa rake 0.8.7, a ja mam tą najnowszą 0.9.9.2 ?

[quote]rake test
rake aborted!
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.8.7. Using bundle exec may solve this.[/quote]

Nie mam pojęcia o co chodzi ;), ale jeżeli jeszcze nie za bardzo się zżyłeś z cruisecontrol, to może spróbuj użyć jenkinsa (warto się zainteresować też tym co github wypuścił: https://github.com/blog/1013-janky). Też kiedyś poległem na konfiguracji cruisecontrol, a później integrity, z jenkinsem nigdy nie miałem większych problemów.

Jenkinsa też męczę. Oba muszę opanować. Jakby ktoś znał rozwiązanie tego powyższczego problemu byłbym wdzięczny.

Ten janky to jest połączenie jenkinsa i hudsona na railsach ?

@drogus wiesz jak ruszyć railsy na jenkinsie? Postawiłem go, wtyczki zainstalowane, ale mam problem z uruchomieniem projekty rails.

Dlaczemu oba?

Z tego co pobieżnie przejrzałem to chodzi głównie o integrację z githubem/hubotem, ale nie instalowałem jeszcze, więc dużo więcej Ci nie powiem.

  • dodajesza nowy projekt
  • w configu ustawiasz link do repo na githubie
  • zaznaczasz “Poll SCM”, i dajesz w polu tekstowym: * * * * * (albo coś innego jak wolisz, format czasu z crona)
  • upewniasz się, że użytkownik, na którym chodzi CI (z reguły jenkins), ma dostęp do repo na githubie (ja się po prostu loguję na niego i robię testowe git clone)
  • w “Build” wybierasz “Add build step” -> “Execute shell”
  • wklejasz tam cokolwiek jest Ci potrzebne do uruchomienia CI, np. u mnie to wygląda tak:

export RVM_RUBY=1.9.3-p0 rvm $RVM_RUBY exec bundle install --path vendor/bundled_gems --deployment cp config/database.ci.yml config/database.yml export PGPASSWORD=... echo "DROP SCHEMA public CASCADE;CREATE SCHEMA public" | psql -h 127.0.0.1 -U jenkins -w ci rvm $RVM_RUBY exec bundle exec rake postgis:install RAILS_ENV=test --trace > /tmp/postgis.install.ci 2>&1 rvm $RVM_RUBY exec bundle exec rake db:schema:load RAILS_ENV=test --trace nohup Xvfb -ac -screen scrn 1280x2000x24 :2.0 & export DISPLAY=:2.0 rvm $RVM_RUBY exec ./script/spec --tag ~unciable
Trochę tego jest i muszę to kiedyś posprzątać, ale już pewnie widzisz co i jak. Np. w teorii nie trzeba za każdym razem wywalać bazy danych i od początku robić migracji, ale nie chciało mi się obczajać jak to lepiej zrobić z postgisem (tak, jestem bardzo leniwy :wink: ).

Te 2 linijki są do selenium, firefox się odpala w tym wirtualnym bufferze:

nohup Xvfb -ac -screen scrn 1280x2000x24 :2.0 & export DISPLAY=:2.0

[quote=chinchin]Uzywam rvm z rubym 1.9.2p bodaj 136. Może problem jest w tym, że cruisecontrol używa rake 0.8.7, a ja mam tą najnowszą 0.9.9.2 ?

[quote]rake test
rake aborted!
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.8.7. Using bundle exec may solve this.[/quote]
[/quote]
Jeśli gdzieś w cruisecontrol możesz wpisać polecenie do odpalania testów (teraz jest rake test), to spróbuj wpisać “bundle exec rake test”

Dalej nie mogę ruszyć z tym jenkinsem ;p

Log z buidla:

[quote]Started by user anonymous
Checkout:workspace / /var/lib/jenkins/jobs/nowy/workspace - hudson.remoting.LocalChannel@1510e56
Using strategy: Default
Checkout:workspace / /var/lib/jenkins/jobs/nowy/workspace - hudson.remoting.LocalChannel@1510e56
Workspace has a .git repository, but it appears to be corrupt.
Cloning the remote Git repository
Cloning repository origin
Fetching upstream changes from /home/user/projekty/nowy
ERROR: Couldn’t find any revision to build. Verify the repository and branch configuration for this job.
Finished: FAILURE[/quote]
Zalogowałem się na jenkinsa (wcześniej musiałem ustawić hasło jako admin na jenkins bo nie mogę się zalogować), udało mi się zrobić git clone /home/user/projekty/nowy poszło dobrze.

W shellu wykonuje tylko to na razie:

[quote]export RVM_RUBY=1.9.2-p290
rvm $RVM_RUBY exec bundle install --path vendor/bundled_gems --deployment[/quote]
GitHub project jest ustawione /home/user/projekty/nowy/ a w Source Code Management zaznoczne git i ustawiony taki sam adres url

To musisz mieć ustawione na ścieżkę z githuba, np: https://github.com/foo/bar.git

W razie czego możesz się zalogować na dowolnego użytkownika mając roota, nie trzeba mu ustawiać hasła, np: su jenkins

Mówisz o linijce GithHub Project?

Nie kumam tego, repo mam lokalnie na swoim kompie.

Co z linijką w source code managmetn i zaznaczonym GIT?

Chyba, że brakuje mi jakiegoś pluginu.

To wtedy “Github” chyba niepotrzebnie tam jest :wink:

Kliknij na “Configure”, później “Manage plugins” i zobacz czy masz zainstalowany “Git Plugin”. Wtedy w “Source Code Management” masz do wyboru git i wtedy pewnie możesz wkleić lokalną ścieżkę.

Witam,
może komus udało się uruchomić tego cruise control?

Robiłem nawet na wersji 1.8.7 i rake 0.8.7 i wg. tego http://trug.pl/upload/CruiseControl_rb.pdf

I dalej mam te same błedy co w 1szym poście :confused:

Cześć,
udało mi się w końcu przebrnąc ten błąd i działa.
Teraz mam problem ze zrobieniem builda, nie tworzy mi pliku Rakefile, a jak go ręcznie stworzę to nie nadpisuje.
Niżej kody błędów

[code]/home/debian/.cruise/projects/moja/work debian$ /home/debian/.rvm/rubies/ruby-1.9.2-p320/bin/ruby -e “require ‘rubygems’ rescue nil; require ‘rake’; load ‘/home/debian/cruisecontrol.rb/tasks/cc_build.rake’; ARGV << ‘–nosearch’ << ‘cc:build’; Rake.application.run; ARGV.clear”
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/debian/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/rake.rb:2367:in raw_load_rakefile' /home/debian/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/rake.rb:2007:inblock in load_rakefile’
/home/debian/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/rake.rb:2058:in standard_exception_handling' /home/debian/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/rake.rb:2006:inload_rakefile’
/home/debian/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/rake.rb:1991:in run' -e:1:in

dir : /home/debian/.cruise/projects/moja/work
command : echo /home/debian/.cruise/projects/moja/work debian$ /home/debian/.rvm/rubies/ruby-1.9.2-p320/bin/ruby\ -e\ “require\ ‘rubygems’\ rescue\ nil;\ require\ ‘rake’;\ load\ ‘/home/debian/cruisecontrol.rb/tasks/cc_build.rake’;\ ARGV\ <<\ ‘–nosearch’\ <<\ ‘cc:build’;\ Rake.application.run;\ ARGV.clear” >> /home/debian/.cruise/projects/moja/build-b0a9352d09c19b7b6d892ac14e5e5d47511fcf96/build.log && /home/debian/.rvm/rubies/ruby-1.9.2-p320/bin/ruby -e “require ‘rubygems’ rescue nil; require ‘rake’; load ‘/home/debian/cruisecontrol.rb/tasks/cc_build.rake’; ARGV << ‘–nosearch’ << ‘cc:build’; Rake.application.run; ARGV.clear” >> /home/debian/.cruise/projects/moja/build-b0a9352d09c19b7b6d892ac14e5e5d47511fcf96/build.log 2>&1
exitstatus: 1[/code]

Nikt się z takim czymś nie spotkał? Z takim poleceniem tworzącym? :confused: Może mogę tworzyć przy użyciu innych komend? Ktoś pomoże? Mogę używać dowolnych, są wczytywane z pliku .sh