Skip to content

Commit 5f1c534

Browse files
committed
fix(release): tinker with release
1 parent 5408fc8 commit 5f1c534

3 files changed

Lines changed: 160 additions & 50 deletions

File tree

package-lock.json

Lines changed: 112 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,14 @@
4141
"@types/gulp": "^4.0.6",
4242
"@types/jquery": "^3.3.29",
4343
"@types/node": "^11.13.0",
44-
"ansi-colors": "^3.2.4",
4544
"babel-loader": "^8.0.5",
4645
"commitizen": "^3.0.7",
4746
"css-loader": "^2.1.1",
4847
"cz-conventional-changelog": "^2.1.0",
4948
"del": "^4.1.0",
49+
"delay": "^4.1.0",
5050
"directory-exists": "^2.0.1",
5151
"execa": "^1.0.0",
52-
"fancy-log": "^1.3.3",
5352
"fast-glob": "^2.2.6",
5453
"gulp": "^4.0.0",
5554
"handlebars": "^4.1.1",
@@ -60,6 +59,7 @@
6059
"node-sass": "^4.11.0",
6160
"sass-loader": "^7.1.0",
6261
"semantic-release": "^15.13.3",
62+
"semver": "^6.0.0",
6363
"standard": "^12.0.1",
6464
"style-loader": "^0.23.1",
6565
"webpack": "^4.29.6",

scripts/tasks/deploy.js

Lines changed: 46 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,77 @@
11
const gulp = require('gulp')
22
const path = require('../../data/path')
33
const travis = require('is-travis')
4+
const execa = require('execa')
45
const directory = require('directory-exists')
56
const glob = require('fast-glob')
6-
const log = require('fancy-log')
7-
const color = require('ansi-colors')
8-
9-
const execa = require('execa')
7+
const delay = require('delay')
8+
const semver = require('semver')
109

11-
console.log(process.env)
10+
gulp.task('deploy:prepare-repository', async () => {
11+
// check CI environment
12+
if (!travis) {
13+
throw Error('Script can be executed only in Travis CI.')
14+
}
1215

13-
gulp.task('deploy', async () => {
16+
// check token
1417
const token = process.env.GH_TOKEN
1518

1619
if (!token) {
1720
throw Error('GitHub token is not present.')
1821
}
1922

23+
// clone repository into a deploy directory
2024
const repository = `https://${token}@github.com/nodewell/nodewell.github.io.git`
2125

22-
// const { stdout } = await execa('git', ['clone', repository], { cwd: path.deploy })
23-
// const { stdout } = await execa('git', ['clone', repository, path.deploy])
24-
// console.log(stdout)
25-
26-
// await execa('git', ['clone', repository, path.deploy])
27-
28-
// if (!travis) {
29-
// throw Error('Script can be executed only in Travis CI.')
30-
// }
26+
await execa('git', ['clone', repository, path.deploy])
27+
})
3128

29+
gulp.task('deploy:prepare-content', async () => {
30+
// check build directory
3231
const exists = await directory(path.build)
3332

3433
if (!exists) {
3534
throw Error('Build directory doesn\'t exist.')
3635
}
3736

38-
// const files = await glob('**/*.*', { cwd: path.build })
39-
const files = await glob(path.build + '/**/*.*')
37+
// gather files
38+
const files = await glob('**/*.*', { cwd: path.build })
4039

4140
if (files.length === 0) {
4241
throw Error('Build directory is empty.')
4342
}
4443

45-
console.log(files)
44+
// clear deploy repository (delete all files)
45+
await execa('git', ['rm', '-r', '*'], { cwd: path.deploy })
4646

47-
// const dir = await glob(path.build + '/')
48-
// console.log(dir)
47+
// copy build files to deploy repository
48+
await gulp
49+
.src(files, { cwd: path.build })
50+
.pipe(gulp.dest(path.deploy))
4951

50-
// console.log(process.argv)
51-
// log.info('Check "build" directory' + color.cyan('YEAH!'))
52+
// wait for a while for the files to be completely copied
53+
await delay(1000)
5254

53-
// log.info(process.argv)
54-
await gulp
55+
// process passed next version number
56+
const arg = process.argv[process.argv.length - 1] || ''
57+
const version = arg.substring(2)
58+
59+
if (semver.valid(version) === null) {
60+
throw Error('Version is invalid.')
61+
}
62+
63+
// commit files with next version
64+
await execa('git', ['add', '.'], { cwd: path.deploy })
65+
await execa('git', ['commit', '-m', `chore(release): ${version}`], { cwd: path.deploy })
5566
})
67+
68+
gulp.task('deploy:push-content', async () => {
69+
// push content to remote rpository
70+
await execa('git', ['push', '-u', 'origin', 'master'], { cwd: path.deploy })
71+
})
72+
73+
gulp.task('deploy', gulp.series(
74+
'deploy:prepare-repository',
75+
'deploy:prepare-content',
76+
'deploy:push-content'
77+
))

0 commit comments

Comments
 (0)