This repository has been archived by the owner on Nov 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
gulpfile.js
106 lines (94 loc) · 2 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const { series, src, dest } = require('gulp')
const clean = require('gulp-clean')
const zip = require('gulp-zip')
const exec = require('util').promisify(require('child_process').exec)
const cfg = require('./gulpfile.json')
/**
* Perform PHP Linting
*/
async function doLint()
{
// these may fail, it's fine
try {
await exec(`${cfg.vendorbin}${cfg.phpcsfixcmd} ${cfg.phpcsparams}`)
} catch (e) {
}
// these shouldn't fail
try {
await exec(`${cfg.vendorbin}${cfg.phpcschkcmd} ${cfg.phpcsparams}`)
await exec(`${cfg.vendorbin}${cfg.phpstancmd}`);
} catch (e) {
await Promise.reject(e.message)
}
await Promise.resolve()
}
/**
* cleanup old build folder / archive
* @return stream
*/
function doDistClean()
{
return src([cfg.archiveBuildPath, `${cfg.archiveFileName} - latest.zip`], { read: false, base: '.', allowEmpty: true })
.pipe(clean({ force: true }))
}
/**
* Copy all files/folders to build folder
* @return stream
*/
function doCopyFiles()
{
return src(cfg.filesForArchive, { base: '.' })
.pipe(dest(cfg.archiveBuildPath))
}
/**
* Clean up files
* @return stream
*/
function doFullClean()
{
return src(cfg.filesForCleanup, { read: false, base: '.', allowEmpty: true })
.pipe(clean({ force: true }))
}
/**
* build latest zip archive
* @return stream
*/
function doGitZip() {
return src(`./${cfg.archiveBuildPath}/**`)
.pipe(zip(`${cfg.archiveFileName}-latest.zip`))
.pipe(dest('.'))
}
/**
* build zip archive
* @return stream
*/
function doZip() {
return src(`./${cfg.archiveBuildPath}/**`)
.pipe(zip(`${cfg.archiveFileName}.zip`))
.pipe(dest('./pkg'))
}
exports.lint = series(
doLint
)
exports.copy = series(
doDistClean,
doCopyFiles
)
exports.prepare = series(
exports.lint,
exports.copy
)
exports.archives = series(
doGitZip,
doZip
)
exports.default = series(
exports.prepare,
exports.archives,
doFullClean
)
exports.release = series(
exports.copy,
exports.archives,
doFullClean
)