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 before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
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:
grunt.loadNpmTasks('grunt-hotbox-deploy');
The "hotbox_deploy" task
Overview
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:
[
{
"name": name1,
...options
},
{
"name": name2,
...options2
},
]
или
{
...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