grunt-hotbox-deploy
Version:
Grunt task for deploying front-end bundles to Hotbox
200 lines (146 loc) • 6.49 kB
Markdown
# grunt-hotbox-deploy
> Grunt task for deploying front-end bundles to Hotbox
## Getting Started
This plugin requires Grunt `~0.4.5`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-hotbox-deploy --save-dev
```
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks('grunt-hotbox-deploy');
```
## The "hotbox_deploy" task
### Overview
```js
grunt.initConfig({
hotbox_deploy: {
options: {
AccessKeyId: '<s3 access key>',
SecretKey: '<s3 secret key>',
bucket: '<bucket name>',
endpoint: '<s3 server>',
dest: '.build',
prodDest: '___prod'
},
your_target: {
versionedStatic: {
files: [{
src: ['**/*.*'],
cwd: 'static/'
}]
},
static: {
files: [{
src: ['js/landings/loader.js'],
cwd: 'static/'
}]
},
templates: {
files: [{
src: ['*.html'],
cwd: 'templates/'
}]
}
}
}
});
```
### Файл конфига
`aws-config.json` содержит аналогичные опциям параметры, конфиг гранта приоритетней. `aws-config.local.json` перебивает `aws-config.json`, нужно добавить в `.gitignore`
Формат содержимого aws-config.json или aws-config.local.json:
```json
[
{
"name": name1,
...options
},
{
"name": name2,
...options2
},
]
```
или
```json
{
...options
}
```
Если данные хотя бы в одном из файлов представлены в виде массива, то при выполнении в консоли нужно будет выбрать используемый конфиг по ключу name. На выбор предоставляются конфиги одного из файла, в зависимости от того, длина какого массива больше, при этом конфиги без поля name игнорируются. Если конфиги с выбранным именем есть в обоих файлах, то они сливаются, опции из aws-config.local.json приоритетнее.
При запуске с опцией --project=somename автоматически выбирается конфиг с name == somename.
При выполнении с флагом --deploy-to-prod-branch, название ветки можно не указывать. В таком случае будет использовано значение из опции prodBranch (по умолчанию omega-test).
Параметром --config можно задать файл, который будет использоваться вместо aws-config.local.json.
### Options
#### options.AccessKeyId
Type: `String`
Default value: `''`
Ключ доступа к S3
#### options.SecretKey
Type: `String`
Default value: `''`
Секретный ключ для достпа к S3
#### options.bucket
Type: `String`
Default value: `''`
Имя бакета, в который надо залить бандл
#### options.endpoint
Type: `String`
Default value: `'hb.bizmrg.com'`
Адрес сервера, на который надо залить бандл
#### options.dest
Type: `String`
Default value: `'.build'`
Временная папка для сборки. Чистится перед запуском сборки. Нужно добавить в `.gitignore`
#### options.prodDest
Type: `String`
Default value: `'___prod'`
Папка, в которую копируются шаблоны, при выкладке в бой командой `grunt hotbox_deploy --deploy-to-prod-branch=<branch>`, где `<branch>` имя ветки для выкладки в продакшн, предварительно собранной в тест.
#### `<target>`.versionedStatic
Type: `Object`
Default value: `undefined`
Настройки для версионированной статики.
#### `<target>`.versionedStatic.files
Type: `Object`
Default value: `undefined`
Массив настроек поиска файлов.
#### `<target>`.versionedStatic.files[i].cwd
Type: `Object`
Default value: `undefined`
Путь, относительно которого работать с файлами. Аналогичен стандартной настройке grunt
#### `<target>`.versionedStatic.files[i].src
Type: `Object`
Default value: `undefined`
Набор масок поиска файлов. Аналогичен стандартной настройке grunt
#### `<target>`.static
Type: `Object`
Default value: `undefined`
Настройки для не версионированной статики.
#### `<target>`.static.files
Type: `Object`
Default value: `undefined`
Массив настроек поиска файлов.
#### `<target>`.static.files[i].cwd
Type: `Object`
Default value: `undefined`
Путь, относительно которого работать с файлами. Аналогичен стандартной настройке grunt
#### `<target>`.static.files[i].src
Type: `Object`
Default value: `undefined`
Набор масок поиска файлов. Аналогичен стандартной настройке grunt
#### `<target>`.templates
Type: `Object`
Default value: `undefined`
Настройки для шаблонов.
#### `<target>`.templates.files
Type: `Object`
Default value: `undefined`
Массив настроек поиска файлов.
#### `<target>`.templates.files[i].cwd
Type: `Object`
Default value: `undefined`
Путь, относительно которого работать с файлами. Аналогичен стандартной настройке grunt
#### `<target>`.templates.files[i].src
Type: `Object`
Default value: `undefined`
Набор масок поиска файлов. Аналогичен стандартной настройке grunt