Checkout from GIT and deploy to Heroku

Hi,

I would like to clone a project from a GIT server and then perform some tests and then deploy to Heroku.

I have been able to get my project from GIT, and then perform "bundle install" which does succeed. Leaving the middle tests part out, I am unable to deploy to Heroku. To deploy, I am doing a Command Line build runner with my "Command Executable" set to "git" and "Command Parameter" set to "push git@heroku-#{new_project}:#{new heroku project’s name}.git master". Where I have set my project name and heroku project name. This is the build log:


[21:22:28]: Checking for changes
[21:22:29]: Clean build enabled: removing old files from /home/teamcity/TeamCity/buildAgent/work/c463bb084d1493f0
[21:22:29]: Clearing temporary directory: /home/teamcity/TeamCity/buildAgent/temp/buildTmp
[21:22:29]: Checkout directory: /home/teamcity/TeamCity/buildAgent/work/c463bb084d1493f0
[21:22:29]: Updating sources: server side checkout...
[21:22:29]: [Updating sources: server side checkout...] Will perform clean checkout
[21:22:29]: [Updating sources: server side checkout...] Clean checkout reasons
[21:22:29]: [Clean checkout reasons] Checkout directory is empty or doesn't exist
[21:22:29]: [Clean checkout reasons] "Clean all files before build" turned on
[21:22:29]: [Updating sources: server side checkout...] Building clean patch for VCS root: PROJECTNAME Git Repo
[21:22:29]: [Updating sources: server side checkout...] Repository sources transferred: 76.91Kb total
[21:22:29]: [Updating sources: server side checkout...] Removing /home/teamcity/TeamCity/buildAgent/work/c463bb084d1493f0
[21:22:29]: [Updating sources: server side checkout...] Updating /home/teamcity/TeamCity/buildAgent/work/c463bb084d1493f0
[21:22:29]: Parameter "system.teamcity.build.checkoutDir" is undefined.
[21:22:29]: Publishing internal artifacts
[21:22:29]: [Publishing internal artifacts] Sending build.start.properties.gz file
[21:22:29]: Step 1/2: Bundle Install (Command Line)
[21:22:29]: [Step 1/2] Starting: /home/teamcity/.rvm/gems/ruby-1.9.2-p290@ PROJECTNAME/bin/bundle install
[21:22:29]: [Step 1/2] in directory: /home/teamcity/TeamCity/buildAgent/work/c463bb084d1493f0
[21:22:30]: [Step 1/2] Using rake (0.9.2.2)
[21:22:30]: [Step 1/2] Using multi_json (1.0.3)
[21:22:30]: [Step 1/2] Using activesupport (3.1.1)
[21:22:30]: [Step 1/2] Using builder (3.0.0)
[21:22:30]: [Step 1/2] Using i18n (0.6.0)
[21:22:30]: [Step 1/2] Using activemodel (3.1.1)
[21:22:30]: [Step 1/2] Using erubis (2.7.0)
[21:22:30]: [Step 1/2] Using rack (1.3.5)
[21:22:30]: [Step 1/2] Using rack-cache (1.1)
[21:22:30]: [Step 1/2] Using rack-mount (0.8.3)
[21:22:30]: [Step 1/2] Using rack-test (0.6.1)
[21:22:30]: [Step 1/2] Using hike (1.2.1)
[21:22:30]: [Step 1/2] Using tilt (1.3.3)
[21:22:30]: [Step 1/2] Using sprockets (2.0.3)
[21:22:30]: [Step 1/2] Using actionpack (3.1.1)
[21:22:30]: [Step 1/2] Using mime-types (1.17.2)
[21:22:30]: [Step 1/2] Using polyglot (0.3.3)
[21:22:30]: [Step 1/2] Using treetop (1.4.10)
[21:22:30]: [Step 1/2] Using mail (2.3.0)
[21:22:30]: [Step 1/2] Using actionmailer (3.1.1)
[21:22:30]: [Step 1/2] Using arel (2.2.1)
[21:22:30]: [Step 1/2] Using tzinfo (0.3.31)
[21:22:30]: [Step 1/2] Using activerecord (3.1.1)
[21:22:30]: [Step 1/2] Using activeresource (3.1.1)
[21:22:30]: [Step 1/2] Using ansi (1.4.1)
[21:22:30]: [Step 1/2] Using bundler (1.0.21)
[21:22:30]: [Step 1/2] Using coffee-script-source (1.1.3)
[21:22:30]: [Step 1/2] Using execjs (1.2.9)
[21:22:30]: [Step 1/2] Using coffee-script (2.2.0)
[21:22:30]: [Step 1/2] Using rack-ssl (1.3.2)
[21:22:30]: [Step 1/2] Using json (1.6.1)
[21:22:30]: [Step 1/2] Using rdoc (3.11)
[21:22:30]: [Step 1/2] Using thor (0.14.6)
[21:22:30]: [Step 1/2] Using railties (3.1.1)
[21:22:30]: [Step 1/2] Using coffee-rails (3.1.1)
[21:22:30]: [Step 1/2] Using jquery-rails (1.0.18)
[21:22:30]: [Step 1/2] Using libv8 (3.3.10.4)
[21:22:30]: [Step 1/2] Using pg (0.11.0)
[21:22:30]: [Step 1/2] Using rails (3.1.1)
[21:22:30]: [Step 1/2] Using sass (3.1.10)
[21:22:30]: [Step 1/2] Using sass-rails (3.1.5)
[21:22:30]: [Step 1/2] Using sqlite3 (1.3.4)
[21:22:30]: [Step 1/2] Using sqlite3-ruby (1.3.3)
[21:22:30]: [Step 1/2] Using therubyracer (0.9.9)
[21:22:30]: [Step 1/2] Using turn (0.8.3)
[21:22:30]: [Step 1/2] Using uglifier (1.1.0)
[21:22:30]: [Step 1/2]  [32mYour bundle is complete! It was installed into /root/.rvm/gems/ruby-1.9.2-p290@ PROJECTNAME [0m
[21:22:30]: [Step 1/2] Process exited with code 0
[21:22:30]: Step 2/2: Deploy to Heroku (Command Line)
[21:22:30]: [Step 2/2] Starting: git push git@heroku-PROJECTNAME:HEROKUPROJECTNAME.git master
[21:22:30]: [Step 2/2] in directory: /home/teamcity/TeamCity/buildAgent/work/c463bb084d1493f0
[21:22:30]: [Step 2/2] fatal: Not a git repository (or any of the parent directories): .git
[21:22:30]: [Step 2/2] Process exited with code 128
[21:22:30]: [Step 2/2] Step Deploy to Heroku (Command Line) failed
[21:22:30]: Publishing internal artifacts
[21:22:30]: [Publishing internal artifacts] Sending build.finish.properties.gz file
[21:22:30]: Build finished

It seems like it cannot find my project .git file. I am not sure how exactly to "allow it to find it".

Can anyone help?
0
5 comments

Hi Sahir

You need to switch to agent-side checkout. By default working copy is exported and does not contain full clone of the repository.

Michael

0

By the way, do you really need clean checkout enabled? That may significantly impact build performance.
Build Files Cleaner is alternate, much faster approach to keep working copies in sync.

0
Avatar
Permanently deleted user

Thank you for your help.

It seems that my project is failing at step 2 which is to deploy the project to heroku. This is the error I am getting:

Step 2/2: Deploy to Heroku (Command Line)
[00:02:14]: [Step 2/2] Environment variable 'GEM_PATH' has predefined value '~/.rvm/gems/ruby-1.9.2-p290@project:/home/teamcity/.rvm/gems/ruby-1.9.2-p290@global'. It may affect runtime build behaviour because TeamCity Ruby support wont override it.
[00:02:14]: [Step 2/2] Environment variable 'GEM_HOME' has predefined value '~/.rvm/gems/ruby-1.9.2-p290@ project'. It may affect runtime build behaviour because TeamCity Ruby support wont override it.
[00:02:14]: [Step 2/2] Environment variable 'BUNDLE_PATH' has predefined value '~/.rvm/gems/ruby-1.9.2-p290@ project'. It may affect runtime build behaviour because TeamCity Ruby support wont override it.
[00:02:14]: [Step 2/2] Starting: git push git@heroku.com: project.git master
[00:02:14]: [Step 2/2] in directory: /home/teamcity/TeamCity/buildAgent/work/c5d161aeb8cf26ed
[00:02:15]: [Step 2/2] Host key verification failed.
[00:02:15]: [Step 2/2] fatal: The remote end hung up unexpectedly
[00:02:15]: [Step 2/2] Process exited with code 128
[00:02:15]: [Step 2/2] Step Deploy to Heroku (Command Line) failed
[00:02:15]: Publishing internal artifacts
[00:02:15]: [Publishing internal artifacts] Sending build.finish.properties.gz file
[00:02:15]: Build finished

I have tried this same git push command from terminal even in the folder the project is in and it works there but for some reason teamcity fails. I believe I have my keys set up properly and yes my public key has been added to heroku. This is what my ssh config file looks like:
# Heroku for project
Host heroku.com
HostName heroku.com
#ForwardAgent yes
IdentitiesOnly yes
IdentityFile /home/teamcity/.ssh/teamcity_project_rsa

Any ideas or suggestions?

Thank you for your help
0

Is your build agent started under the same user account? It may look for SSH keys in another profile.

0
Avatar
Permanently deleted user

I don't think so. My user account is "teamcity" and build agent is the default one.

0

Please sign in to leave a comment.