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?
[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?
Please sign in to leave a comment.
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
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.
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:
[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:
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
Is your build agent started under the same user account? It may look for SSH keys in another profile.
I don't think so. My user account is "teamcity" and build agent is the default one.