Open akinoriosamura opened 6 years ago
heroku login FRONT_APP_TEST='qa-front-test' SERVER_APP_TEST='qa-server-test' heroku create $FRONT_APP_TEST
Creating ⬢ qa-front-test... done
https://qa-front-test.herokuapp.com/ | https://git.heroku.com/qa-front-test.git
heroku create $SERVER_APP_TEST
Creating ⬢ qa-server-test... done
https://qa-server-test.herokuapp.com/ | https://git.heroku.com/qa-server-test.git
heroku addons:add cleardb:ignite -a $SERVER_APP_TEST
Creating cleardb:ignite on ⬢ qa-server-test... free
Created cleardb-regular-23164 as CLEARDB_DATABASE_URL
Use heroku addons:docs cleardb to view documentation
heroku config -a $SERVER_APP_TEST | grep CLEARDB_DATABASE_URL
CLEARDB_DATABASE_URL: mysql://bc79745f50e828:0421fb1b@us-cdbr-iron-east-05.cleardb.net/heroku_ff841f6e794ec8d?reconnect=true
heroku config:set DATABASE_URL='mysql2://bc79745f50e828:0421fb1b@us-cdbr-iron-east-05.cleardb.net/heroku_ff841f6e794ec8d?reconnect=true' -a $SERVER_APP_TEST
Setting DATABASE_URL and restarting ⬢ qa-server-test... done, v4
DATABASE_URL: mysql2://bc79745f50e828:0421fb1b@us-cdbr-iron-east-05.cleardb.net/heroku_ff841f6e794ec8d?reconnect=true
heroku config:set DATABASE_PASSWORD='0421fb1b' -a $SERVER_APP_TEST
Setting DATABASE_PASSWORD and restarting ⬢ qa-server-test... done, v5
DATABASE_PASSWORD: 0421fb1b
heroku config:set RAILS_ENV='test' -a $SERVER_APP_TEST
Setting RAILS_ENV and restarting ⬢ qa-server-test... done, v6
RAILS_ENV: test
git clone https://github.com/akinoriosamura/QaAppServer.git cd QaAppServer heroku git:remote -a $SERVER_APP_TEST
set git remote heroku to https://git.heroku.com/qa-server-test.git
git push heroku master
...
remote: Verifying deploy... done.
To https://git.heroku.com/qa-server-test.git
* [new branch] master -> master
URL=>https://qa-server-test.herokuapp.com/ heroku run rails db:migrate -a $SERVER_APP_TEST
git clone https://github.com/akinoriosamura/QaAppFront.git cd QaAppFront npm install vi webpack.prod.config.js
頭のtry catchの下辺りに追加
var env = process.env.QA_ENV === 'test'
? require('./test.env')
: require('./prod.env')
...
このファイル内の変数定義は削除して変わりにenvを使う
new webpack.DefinePlugin({
'process.env': env
vi prod.env.js
'use strict'
module.exports = {
STRIPE_PUBLISH: '"xxx"',
API_DOMAIN_URL: '"https://qa-server.herokuapp.com/"',
FRONT_DOMAIN_URL: '"https://qa-front.herokuapp.com/"'
}
vi test.env.js
'use strict'
module.exports = {
STRIPE_PUBLISH: '"xxx"',
API_DOMAIN_URL: '"https://qa-server-test.herokuapp.com/"',
FRONT_DOMAIN_URL: '"https://qa-front-test.herokuapp.com/"'
}
QA_ENV=test monaca transpile cd www public/app.bundle.js内をqa-serverで検索してURLがtest環境ようになっている事を確認 la -la で.gitがある事を確認。ない場合はgit init heroku git:remote -a $FRONT_APP_TEST
set git remote heroku to https://git.heroku.com/qa-front-test.git
git add . git commit -m "xxx" git push heroku master
vi Procfile
release: bundle exec rails db:migrate
これで変更したアプリが公開される前にDBマイグレーションが実行される(herokuのRelease Phase機能)
...
remote: Verifying deploy... done.
remote: Running release command...
remote:
remote: Waiting for release.... done.
To https://git.heroku.com/qa-server-test.git
f85a092..dbcc7ff master -> master
ログもVerifying deploy... done. の後に Running release command...が出力されるようになる。
monaca transpileは、コンパイルしたときのURLをapp先で使用する(テストをコンパイルしたら、prod時においてもテストのスクリプトを使ってしまう)。なので、test, productionは別app作成してデプロイする必要あり。
上記は、フロント(production)、フロント(test)、サーバー(production)、サーバー(test)それぞれherokuのappを作成しデプロイする
development,test,production環境の構築方法とデプロイ方法について整理する