-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
59 lines (49 loc) · 1.42 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
"use strict"
const babel = require("gulp-babel");
const del = require("del");
const gulp = require("gulp");
const lambda = require("gulp-awslambda");
const shell = require('gulp-shell')
const source = require("vinyl-source-stream");
const zip = require("gulp-zip");
let dest = {
lambda: "dist"
};
let paths = {
babel: [
"src/**/*"
],
src: [
"lambda.js",
"package.json",
]
};
gulp.task("clean", function () {
return del([ dest.lambda ]);
});
gulp.task("lambda.npm.babel", function () {
gulp.src(paths.babel).
pipe(babel({
"presets": [ "es2015" ]
})).
pipe(gulp.dest(dest.lambda + "/lib"));
});
gulp.task("lambda.npm.src", function () {
return gulp.src(paths.src).
pipe(gulp.dest(dest.lambda));
});
gulp.task("lambda.npm", [ "lambda.npm.babel", "lambda.npm.src" ], shell.task([
`cd ${dest.lambda} && npm install --production`
]));
gulp.task("lambda", [ "lambda.npm" ], function() {
gulp.src([ `${dest.lambda}/**/*`, `!${dest.lambda}/app.zip` ], { dot: true }).
pipe(zip("app.zip")).
pipe(gulp.dest(dest.lambda));
});
gulp.task("default", [ "lambda" ]);
gulp.task("deploy", [ "lambda" ], function () {
let FunctionName = "lambda-iprange-security";
gulp.src([ `${dest.lambda}/**/*`, `!${dest.lambda}/app.zip` ]).
pipe(zip("app.zip")).
pipe(lambda(FunctionName, { region: "ap-northeast-1" }));
});