まず、revelでアプリを作っておく。
$ revel new myapp
次にmyappをgitの管理下に置く。
$ cd $GOPATH/src/myapp
$ git init
$ git add .
$ git commit -m "Initial commit"
その次に.godirを用意する。
$ echo myapp > .godir
$ git add .
$ git commit -m "Add .godir"
[注意] .godirがないとgit pushした時に怒られる。
$ git push heroku master
...
remote: -----> Revel app detected
remote: ! A .godir is required. For instructions:
remote: ! http://mmcgrana.github.io/2012/09/getting-started-with-go-on-heroku
remote:
remote: ! Push rejected, failed to compile Revel app
.godir用意したら下記のコマンドを実行してherokuのインスタンスを作成する。
$ heroku create -b https://github.com/revel/heroku-buildpack-go-revel.git
Git remote heroku addedとなればOK.
...
Creating gentle-savannah-5631... done, stack is cedar-14
Buildpack set. Next release on gentle-savannah-5631 will use https://github.com/revel/heroku-buildpack-go-revel.git.
https://gentle-savannah-5631.herokuapp.com/ | https://git.heroku.com/gentle-savannah-5631.git
Git remote heroku added
[注意] robfig/heroku-buildpack-go-revelではなくrevel/heroku-buildpack-go-revelを使うこと。robfigだとgit pushした後のbuildでコケる。下記のようなログで。
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Fetching custom buildpack https://github.com/robfig/heroku-buildpack-go-revel.git... done
remote: -----> Revel app detected
remote: -----> Installing Go 1.1.2... done
remote: Installing Virtualenv...
remote: ! Push rejected, failed to compile Revel app
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to damp-peak-3771.
remote:
To https://git.heroku.com/damp-peak-3771.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/damp-peak-3771.git'
念のためgit remote -vで追加されていることを確認。
$ git remote -v
heroku https://git.heroku.com/gentle-savannah-5631.git (fetch)
heroku https://git.heroku.com/gentle-savannah-5631.git (push)
最後にherokuにpushする。
$ git push heroku master
Counting objects: 41, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (34/34), done.
Writing objects: 100% (41/41), 82.73 KiB | 0 bytes/s, done.
Total 41 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Fetching custom buildpack https://github.com/revel/heroku-buildpack-go-revel.git... done
remote: -----> Revel app detected
remote: -----> Installing go1.3... done
remote: Installing Virtualenv... done
remote: Installing Mercurial... done
remote: Installing Bazaar... done
remote: -----> Running: go get -tags heroku ./...
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> (none)
remote: Default types for Multipack -> web
remote:
remote: -----> Compressing... done, 60.6MB
remote: -----> Launching... done, v4
remote: https://gentle-savannah-5631.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/gentle-savannah-5631.git
* [new branch] master -> master
ブラウザで確認してみる。
heroku open
It works!!