Skip to content

Commit c72b5fb

Browse files
committed
ci: Build static assets for production
1 parent b1672b9 commit c72b5fb

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ pub
88
.vscode
99
*.css.map
1010
deployment-report.json
11+
package-lock.json
1112
build/
13+
node_modules/

deploy.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,19 @@
4444
run('ln -s docs/_build/html pub');
4545
});
4646

47+
# Install NPM packages from package.json
48+
task('npm:prepare', static function () {
49+
run('npm install');
50+
});
51+
52+
# Build static assets for production using gulp
53+
task('assets:compile', static function () {
54+
run('ls -l ./docs/_static/css');
55+
run('whoami');
56+
run('chmod -R 755 docs/_static');
57+
run('npx gulp buildProd');
58+
});
59+
4760
# HMV configuration for when this is running in a docker
4861
task('deploy:hmv_docker', static function () use (&$DOCKER_HOST, &$DOCKER_WEBROOT) {
4962
if (test('[ -f /etc/hypernode/is_docker ]')) {
@@ -68,6 +81,8 @@
6881
});
6982

7083
$configuration = new Configuration();
84+
$configuration->addBuildTask('npm:prepare');
85+
$configuration->addBuildTask('assets:compile');
7186
$configuration->addBuildTask('python:venv:create');
7287
$configuration->addBuildTask('python:venv:requirements');
7388
$configuration->addBuildTask('python:build_documentation');

gulpfile.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const { series } = require('gulp');
2+
const cleanCSS = require('gulp-clean-css');
3+
const gulp = require('gulp');
4+
const sass = require('gulp-sass')(require('sass'));
5+
const sourcemaps = require('gulp-sourcemaps');
6+
const terser = require('gulp-terser');
7+
8+
function cssCompile() {
9+
return gulp.src('./docs/_static/scss/*.scss')
10+
.pipe(sourcemaps.init())
11+
.pipe(sass.sync().on('error', sass.logError))
12+
.pipe(sourcemaps.write())
13+
.pipe(gulp.dest('./docs/_static/css'));
14+
}
15+
16+
function cssMinify() {
17+
return gulp.src('./docs/_static/css/*.css')
18+
.pipe(cleanCSS())
19+
.pipe(gulp.dest('./docs/_static/css'));
20+
}
21+
22+
function jsMinify() {
23+
return gulp.src('./docs/_static/js/*.js')
24+
.pipe(terser())
25+
.pipe(gulp.dest('./docs/_static/js'));
26+
}
27+
28+
exports.default = series(cssCompile);
29+
exports.buildProd = series(cssCompile, cssMinify, jsMinify);

package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"devDependencies": {
3+
"clean-css": "^5.3.2",
4+
"gulp": "^4.0.2",
5+
"gulp-clean-css": "^4.3.0",
6+
"gulp-sass": "^5.1.0",
7+
"gulp-sourcemaps": "^3.0.0",
8+
"gulp-terser": "^2.1.0",
9+
"sass": "^1.57.1",
10+
"terser": "^5.16.1"
11+
}
12+
}

0 commit comments

Comments
 (0)