Circle CIのJobで任意の環境変数を設定するには
Circle CI(version 2)でJobを実行するときに、環境変数を設定するには BASH_ENV変数に追加するとよい。 「BASH_ENVの中」に>>で追加するのがミソ。
たとえば、gitのリポジトリで最新のタグ名をTAG_NAMEという環境変数として定義したい場合はこんな感じ。
echo 'export TAG_NAME=`git describe --tags`' >> $BASH_ENV
そうすると、jobs実行時のコマンドで普通に環境変数として参照できる。
steps: - checkout - run: gcloud container builds submit --config=cloudbuild.yaml --substitutions REVISION_ID=$TAG_NAME .
最初、BASH_ENVというのはあくまでも例のひとつで、そこに自分の都合に合わせて環境変数を定義する感じかと思っていたらそんなことはなかった。
Railsでバッチを作成するときのメモ
Railsでバッチを生成したい場合のコマンド類のメモ。 よく忘れるからね。
バッチ用rakeファイルを作成する。
$ ./bin/rails g task {yourBatchFileName}
登録されているrakeコマンドを確認する
$ ./bin/rake -vT
バッチの実行
$ ./bin/rake {yourBatchNameSpace}:{taskName}
Herokuよく使うコマンドメモ
Herokuでよく使うコマンドの覚書的メモ。よく忘れるからね。
アプリケーションを作成し、デプロイする
heroku create git push heroku master
アプリケーションの実行状態を確認
heroku ps
アプリケーションのスケールアップ(お財布と要相談)
heroku ps:scale web=2
アプリケーションのログを確認
--tailオプションでリアルタイムに確認可能
heroku logs heroku logs --tail
アプリケーションに対してコマンドを実行する
ただし、実行するサーバーはコマンド実行専用に立ち上がる仕様を把握しておこう。ファイルなどを直接更新しても永続化されない。
#bashでログイン heroku run bash #railsコンソールを起動 heroku run console #migrationを実行 heroku run rake db:migrate #psqlコマンドを実行する heroku pg:psql --app {appName} {dbName}
アプリケーションのメンテナンス状態を管理
heroku maintenance:on heroku maintenance heroku maintenance:off
環境変数を確認、設定する
ホスト名などいった設定値は、ソースに直接書くのではなく、環境変数を使うと便利。
#変数の一覧を取得 heroku config #変数を指定して取得 heroku config:get {keyName} #変数を設定 heroku config:set {keyName}={value} #変数を削除 heroku config:unset {keyName}
ソース内では次のようにENV変数で読み込める。
hostName = ENV['hostname']
アプリケーションを再起動
heroku restart #Dynoを指定して起動する場合はweb.xxを設定 heroku restart web.1
アドオンを追加
heroku addons:add {addonName} {addodOption}
Railsテスト関連のメモ
RSpecのセットアップ
./bin/rails g rspec:install
テスト用ファイルの雛形作成
#モデルのテスト ./bin/rails g rspec:model {modelName} #コントローラーのテスト ./bin/rails g rspec:controller {controllerName} #ビューのテスト ./bin/rails g rspec:view {controllerName} {actionName}
テストの実行
./bin/bundle exec rspec {specFileName}
FactoryGirl用ファイルの準備
./bin/rails g factory_girl:model {modelName}
Rails関連のコマンドのメモ書き
アプリケーションに設定されているrouteを確認する
./bin/rake routes
または、http://{site-name}:{port}/rails/info/routes でも確認可能(Rails4以降)。
controllerを追加する
./bin/rails g controller {controllerName}
railsでDB関連の操作
データベースの作成(初回)
./bin/rake db:create
データベースの更新、マイグレーションファイルの適用
./bin/rake db:migrate
現在のマイグレーションファイルの適用状況を確認する
./bin/rake db:migrate:status
modelを作成する
./bin/rails g model User {columnName}:{Type} ...
modelにカラムを追加する
./bin/rails g migration Add{columnName}To{tableName} {columnName}:{Type}
sqlite3 db/development.sqlite3
bundlerでrailsをインストールする
bundler以外はシステムに直接インストールせずに、railsをインストールする 以下、コマンドのメモ。よく忘れるからね。
$ mkdir myproject $ cd myproject $ bundle init # Gemfileのrailsのコメントを外す $ bundle install --path vendor/bundle #上書きするか?と聞いてくるのでyを入力 $ bundle exec rails new . # sqliteではないDBを利用する場合は-dオプションで指定する。 $ bundle exec rails new . -d postgresql # Gemfileのtherubyracerのコメントを外す $ bundle install --path vendor/bundle $ ./bin/rails server #hostやipを指定する場合は-bオプション $ ./bin/rails server -b 192.168.33.10
scaffoldでアプリのひな形を作成
./bin/rails generate scaffold myapp content:text