LoginSignup
11
11

More than 5 years have passed since last update.

Gruntでプチバージョン管理♥ぽいアップロードのやりかた

Posted at

ブランチを簡単に切るようにアップロードがしたいんです!

いろんな演出を試したり、UIを変更したり、ブランチを簡単に切るようにアップロードがしたいんです。

で、いろんなひとにサクッと確認してほしいんです!

日付ディレクトリを自動で作ってアップロードしまくる!

こういう感じのバージョンにしたディレクトリをいっぱい作ってそこに展開しまくります。

hiduke.png

わかりやすい!やりかた

  1. grunt-sftp-deploy を使います
  2. ビルドIDを作成(日付ディレクトリになるやつ)
  3. publicディレクトリの中身を、日付ディレクトリにアップロードするようにsftp-deploydestを設定
Gruntfile.coffee
# Grunt v0.4.5で動きます
# 日付を作る
# build-versionオプションが設定されてなかったら、いまの時間を設定する
revision = grunt.option('build-version') or grunt.template.today('yyyy-mm-dd_HH-MM-ss')

# アップロードする場所を決める
uploadPath = "hogehoge/assets/#{revision}"

# ~~~~ 中略 ~~~~~


grunt.initConfig 
  'sftp-deploy':
    develop:
      auth: hogehoge
      src: 'public'
      dest: uploadPath
      exclusions: ['.DS_Store']


grunt.registerTask 'testup', ['sftp-deploy:develop']

実行!

$ grunt testup

で、hogehoge.com/hogehoge/assets/2014-05-21_19-32-00/ というディレクトリに一式アップロードされます!

grunt-sftp-deployの注意点

hogehoge/assets/2014-05-21_19-32-00/ みたいなディレクトリにアップするときは、あらかじめサーバーのほうに

  • hogehoge
  • assets

ディレクトリを作成しておいてください。エラーで止まります!

絶対パスでいろいろ設定しておく

jadeなどそれぞれ uploadPathを渡してあげたりするよいです。

これを本番化するときに
* 'hogehoge/assets/日付ディレクトリ/'から htmlだけを抽出して
* 'hogehoge.com/hogehoge/index.html'を を上書き

というふうにすると、簡単にバージョンを変えられたりします。

htmlのキャッシュが気になるひとはサーバーの設定を変えたり、phpでincludeしてあげたりすればいいのかなとおもいます。

Jenkinsでは$BUILD_IDという定数が使える

plu31bfo.png

$BUILD_ID'yyyy-mm-dd_HH-MM-ssの形式で渡ります。

なんでJenkins経由からでもアップロードしまくり!

いろんなバージョン確認できまくり!

ヨッシャー!!

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11