Merge branch 'source' into use-bulma
This commit is contained in:
commit
4e851429d8
|
@ -9,13 +9,14 @@ branches:
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.composer/cache
|
- $HOME/.composer/cache
|
||||||
|
- $HOME/.yarn-cache
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- openssl aes-256-cbc -K $encrypted_01701315b81b_key -iv $encrypted_01701315b81b_iv -in deploy_key.enc -out deploy_key -d
|
- openssl aes-256-cbc -K $encrypted_01701315b81b_key -iv $encrypted_01701315b81b_iv -in deploy_key.enc -out deploy_key -d
|
||||||
- chmod 600 deploy_key
|
- chmod 600 deploy_key
|
||||||
- eval `ssh-agent -s`
|
- eval `ssh-agent -s`
|
||||||
- ssh-add deploy_key
|
- ssh-add deploy_key
|
||||||
- npm install
|
- yarn --pure-lockfile
|
||||||
- composer install --prefer-dist --no-dev
|
- composer install --prefer-dist --no-dev
|
||||||
|
|
||||||
script: ./publish.sh
|
script: ./publish.sh
|
||||||
|
|
|
@ -185,6 +185,11 @@ events:
|
||||||
id: deploying-php-with-fabric
|
id: deploying-php-with-fabric
|
||||||
type: Lightning talk
|
type: Lightning talk
|
||||||
|
|
||||||
|
- event: phpsw
|
||||||
|
date: '2017-09-13'
|
||||||
|
time: ~
|
||||||
|
talk: deploying-php-with-fabric
|
||||||
|
|
||||||
- event: phpnw17
|
- event: phpnw17
|
||||||
date: '2017-10-01'
|
date: '2017-10-01'
|
||||||
time: '09:00 - 09:45'
|
time: '09:00 - 09:45'
|
||||||
|
|
8
gulp-tasks/clean.js
Normal file
8
gulp-tasks/clean.js
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
var del = require('del');
|
||||||
|
|
||||||
|
module.exports = function (gulp, plugins, config) {
|
||||||
|
return function () {
|
||||||
|
del.sync('source/assets/{css,fonts,js}');
|
||||||
|
del.sync('output_*/assets/{css,fonts,js}');
|
||||||
|
}
|
||||||
|
}
|
6
gulp-tasks/fonts.js
Normal file
6
gulp-tasks/fonts.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = function (gulp, plugins, config) {
|
||||||
|
return function () {
|
||||||
|
return gulp.src('node_modules/font-awesome/fonts/*')
|
||||||
|
.pipe(gulp.dest(config.fonts.outputDir));
|
||||||
|
}
|
||||||
|
}
|
11
gulp-tasks/scripts.js
Normal file
11
gulp-tasks/scripts.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
module.exports = function (gulp, plugins, config, sourceFiles, outputFile) {
|
||||||
|
return function () {
|
||||||
|
return gulp.src(sourceFiles)
|
||||||
|
.pipe(plugins.plumber())
|
||||||
|
.pipe(plugins.if(!config.production, plugins.sourcemaps.init()))
|
||||||
|
.pipe(plugins.concat(outputFile))
|
||||||
|
.pipe(plugins.if(config.production, plugins.uglify()))
|
||||||
|
.pipe(plugins.if(!config.production, plugins.sourcemaps.write('.')))
|
||||||
|
.pipe(gulp.dest(config.js.outputDir));
|
||||||
|
}
|
||||||
|
}
|
16
gulp-tasks/styles.js
Normal file
16
gulp-tasks/styles.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
module.exports = function (gulp, plugins, config, sourceFiles, outputFile) {
|
||||||
|
return function () {
|
||||||
|
return gulp.src(sourceFiles)
|
||||||
|
.pipe(plugins.plumber())
|
||||||
|
.pipe(plugins.if(!config.production, plugins.sourcemaps.init()))
|
||||||
|
.pipe(plugins.sassGlob())
|
||||||
|
.pipe(plugins.sass())
|
||||||
|
.pipe(plugins.autoprefixer(config.sass.autoprefixer))
|
||||||
|
.pipe(plugins.concat(outputFile))
|
||||||
|
.pipe(plugins.if(config.production, plugins.purifycss(config.sass.purifyCss)))
|
||||||
|
.pipe(plugins.if(config.production, plugins.cleanCss()))
|
||||||
|
.pipe(plugins.if(!config.production, plugins.sourcemaps.write('.')))
|
||||||
|
.pipe(plugins.if(!config.production, plugins.refresh()))
|
||||||
|
.pipe(gulp.dest(config.sass.outputDir));
|
||||||
|
}
|
||||||
|
}
|
8
gulp-tasks/watch.js
Normal file
8
gulp-tasks/watch.js
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
module.exports = function (gulp, plugins, config) {
|
||||||
|
return function () {
|
||||||
|
plugins.refresh.listen();
|
||||||
|
|
||||||
|
gulp.watch(config.sass.sourceDir + config.sass.pattern, ['styles']);
|
||||||
|
gulp.watch(config.js.sourceDir + config.js.pattern, ['scripts']);
|
||||||
|
}
|
||||||
|
}
|
27
gulpfile.config.js
Normal file
27
gulpfile.config.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
module.exports = function (plugins) {
|
||||||
|
return {
|
||||||
|
sass: {
|
||||||
|
autoprefixer: {
|
||||||
|
browsers: ["last 2 versions", "> 5%"],
|
||||||
|
cascade: false
|
||||||
|
},
|
||||||
|
sourceDir: "assets/sass",
|
||||||
|
pattern: "/**/*.sass",
|
||||||
|
purifyCss: [
|
||||||
|
'source/**/*.html',
|
||||||
|
'source/**/*.md',
|
||||||
|
'source/**/*.twig'
|
||||||
|
],
|
||||||
|
outputDir: "source/assets/css"
|
||||||
|
},
|
||||||
|
fonts: {
|
||||||
|
outputDir: "source/assets/fonts"
|
||||||
|
},
|
||||||
|
js: {
|
||||||
|
sourceDir: "assets/js",
|
||||||
|
pattern: "/**/*.js",
|
||||||
|
outputDir: "source/assets/js"
|
||||||
|
},
|
||||||
|
production: !!plugins.util.env.production
|
||||||
|
}
|
||||||
|
}
|
41
gulpfile.js
Normal file
41
gulpfile.js
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var gulp = require('gulp');
|
||||||
|
var plugins = require('gulp-load-plugins')();
|
||||||
|
var config = require('./gulpfile.config')(plugins);
|
||||||
|
|
||||||
|
function getTask(task) {
|
||||||
|
return require('./gulp-tasks/' + task)(gulp, plugins, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addStyle(sourceFiles, outputFile) {
|
||||||
|
return require('./gulp-tasks/styles')(gulp, plugins, config, sourceFiles, outputFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addScript(sourceFiles, outputFile) {
|
||||||
|
return require('./gulp-tasks/scripts')(gulp, plugins, config, sourceFiles, outputFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
gulp.task('clean', getTask('clean'));
|
||||||
|
gulp.task('default', ['clean', 'fonts', 'styles', 'scripts']);
|
||||||
|
gulp.task('fonts', getTask('fonts'));
|
||||||
|
|
||||||
|
gulp.task('styles',
|
||||||
|
addStyle([
|
||||||
|
'node_modules/font-awesome/css/font-awesome.css',
|
||||||
|
'node_modules/prismjs/themes/prism-twilight.css',
|
||||||
|
config.sass.sourceDir + '/main.sass'
|
||||||
|
], 'site.css')
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task('scripts',
|
||||||
|
addScript([
|
||||||
|
'node_modules/jquery/dist/jquery.js',
|
||||||
|
'node_modules/bootstrap-sass/assets/javascripts/bootstrap.js',
|
||||||
|
'node_modules/prismjs/prism.js',
|
||||||
|
'node_modules/prismjs/components/prism-{apacheconf,bash,css,diff,ini,json,nginx,php,sass,scss,sql,less,twig,xml,yaml}.js',
|
||||||
|
config.js.sourceDir + config.js.pattern
|
||||||
|
], 'site.js')
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task('watch', ['default'], getTask('watch'));
|
61
package.json
61
package.json
|
@ -1,52 +1,23 @@
|
||||||
{
|
{
|
||||||
"config": {
|
|
||||||
"cssOutputDir": "source/assets/css/",
|
|
||||||
"cssOutputFile": "main.css",
|
|
||||||
"fontsDir": "source/assets/fonts/",
|
|
||||||
"jsInputDir": "assets/js/",
|
|
||||||
"jsOutputDir": "source/assets/js/",
|
|
||||||
"jsOutputFile": "site.js",
|
|
||||||
"sassDir": "assets/sass/"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "npm run clean && npm-run-all -p sass js fonts:copy",
|
|
||||||
"clean": "npm-run-all -p sass:clean fonts:clean js:clean",
|
|
||||||
"dev": "npm run development",
|
|
||||||
"development": "cross-env ENV=dev npm run build",
|
|
||||||
"fonts:clean": "rm -rf $npm_package_config_fontsDir output_*/assets/fonts/",
|
|
||||||
"fonts:copy": "mkdir -p $npm_package_config_fontsDir && cp -R node_modules/font-awesome/fonts/* $npm_package_config_fontsDir",
|
|
||||||
"js": "npm run js:concat",
|
|
||||||
"js:clean": "rm -rf $npm_package_config_jsOutputDir output_*/assets/js/",
|
|
||||||
"js:concat": "mkdir -p $npm_package_config_jsOutputDir && concat node_modules/jquery/dist/jquery.js node_modules/bootstrap-sass/assets/javascripts/bootstrap.js node_modules/prismjs/prism.js node_modules/prismjs/components/prism-apacheconf.js node_modules/prismjs/components/prism-bash.js node_modules/prismjs/components/prism-css.js node_modules/prismjs/components/prism-diff.js node_modules/prismjs/components/prism-ini.js node_modules/prismjs/components/prism-json.js node_modules/prismjs/components/prism-json.js node_modules/prismjs/components/prism-less.js node_modules/prismjs/components/prism-nginx.js node_modules/prismjs/components/prism-php.js node_modules/prismjs/components/prism-sass.js node_modules/prismjs/components/prism-scss.js node_modules/prismjs/components/prism-sql.js node_modules/prismjs/components/prism-twig.js node_modules/prismjs/components/prism-yaml.js $npm_package_config_jsInputDir/**/*.js $npm_package_config_jsInputDir/main.js -o $npm_package_config_jsOutputDir$npm_package_config_jsOutputFile",
|
|
||||||
"js:watch": "onchange $npm_package_config_jsInputDir -v -- npm run js",
|
|
||||||
"prod": "npm run production",
|
|
||||||
"production": "cross-env ENV=prod npm run build",
|
|
||||||
"sass": "npm run sass:$ENV:compile && npm run sass:concat && npm run sass:$ENV:move",
|
|
||||||
"sass:clean": "rm -rf $npm_package_config_cssOutputDir output_*/assets/css/",
|
|
||||||
"sass:concat": "mkdir -p $npm_package_config_cssOutputDir && concat node_modules/font-awesome/css/font-awesome.css node_modules/prismjs/themes/prism-twilight.css $npm_package_config_cssOutputFile -o $npm_package_config_cssOutputFile",
|
|
||||||
"sass:dev:compile": "node-sass assets/sass/main.sass $npm_package_config_cssOutputFile --source-map true",
|
|
||||||
"sass:dev:move": "mv $npm_package_config_cssOutputFile $npm_package_config_cssOutputFile.map $npm_package_config_cssOutputDir",
|
|
||||||
"sass:prod:compile": "node-sass assets/sass/main.sass $npm_package_config_cssOutputFile",
|
|
||||||
"sass:prod:move": "mv $npm_package_config_cssOutputFile $npm_package_config_cssOutputDir && npm run sass:uglify",
|
|
||||||
"sass:uglify": "uglifycss --ugly-comments $npm_package_config_cssOutputDir/$npm_package_config_cssOutputFile --output $npm_package_config_cssOutputDir/$npm_package_config_cssOutputFile",
|
|
||||||
"sass:watch": "ENV=dev onchange $npm_package_config_sassDir -v -- npm run sass",
|
|
||||||
"watch": "npm run dev && cross-env ENV=dev npm-run-all -p sass:watch js:watch"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"autoprefixer": "^7.1.2",
|
|
||||||
"concat": "^1.0.3",
|
|
||||||
"copy": "^0.3.0",
|
|
||||||
"cross-env": "^5.0.1",
|
|
||||||
"node-sass": "^4.5.3",
|
|
||||||
"npm-run-all": "^4.0.2",
|
|
||||||
"onchange": "^3.2.1",
|
|
||||||
"purify-css": "^1.2.5",
|
|
||||||
"uglifycss": "^0.0.27"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap-sass": "^3.3.7",
|
"bootstrap-sass": "^3.3.7",
|
||||||
"bulma": "^0.4.4",
|
"bulma": "^0.5.0",
|
||||||
|
"del": "^3.0.0",
|
||||||
"font-awesome": "^4.7.0",
|
"font-awesome": "^4.7.0",
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-autoprefixer": "^4.0.0",
|
||||||
|
"gulp-clean-css": "^3.7.0",
|
||||||
|
"gulp-concat": "^2.6.1",
|
||||||
|
"gulp-if": "^2.0.2",
|
||||||
|
"gulp-load-plugins": "^1.5.0",
|
||||||
|
"gulp-plumber": "^1.1.0",
|
||||||
|
"gulp-purifycss": "^0.2.0",
|
||||||
|
"gulp-refresh": "^1.1.0",
|
||||||
|
"gulp-sass": "^3.1.0",
|
||||||
|
"gulp-sass-glob": "^1.0.8",
|
||||||
|
"gulp-sourcemaps": "^2.6.0",
|
||||||
|
"gulp-uglify": "^3.0.0",
|
||||||
|
"gulp-util": "^3.0.8",
|
||||||
"jquery.2": "^1.0.0",
|
"jquery.2": "^1.0.0",
|
||||||
"prismjs": "^1.6.0"
|
"prismjs": "^1.6.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ popd
|
||||||
rm -rf ${BUILD_DIR}/**/* || exit 0
|
rm -rf ${BUILD_DIR}/**/* || exit 0
|
||||||
|
|
||||||
# Re-generate the site.
|
# Re-generate the site.
|
||||||
npm run prod
|
node_modules/.bin/gulp --production
|
||||||
vendor/bin/sculpin generate --no-interaction --clean --env=prod
|
vendor/bin/sculpin generate --no-interaction --clean --env=prod
|
||||||
touch output_prod/.nojekyll
|
touch output_prod/.nojekyll
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
{% include 'og' with { og: page.meta.og } %}
|
{% include 'og' with { og: page.meta.og } %}
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ site.url }}/assets/css/main.css">
|
<link rel="stylesheet" href="{{ site.url }}/assets/css/site.css">
|
||||||
{% block stylesheets '' %}
|
{% block stylesheets '' %}
|
||||||
|
|
||||||
{% for size in site.apple_touch_icon_sizes %}
|
{% for size in site.apple_touch_icon_sizes %}
|
||||||
|
|
|
@ -19,6 +19,9 @@ meta:
|
||||||
width: 1280
|
width: 1280
|
||||||
height: 800
|
height: 800
|
||||||
type: image/png
|
type: image/png
|
||||||
|
slug: deploying-php-fabric
|
||||||
|
redirect:
|
||||||
|
- talks/deploying-php-applications-with-fabric/
|
||||||
---
|
---
|
||||||
You’ve built your application, and now you just need to deploy it. There are various ways that this could be done – from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended).
|
You’ve built your application, and now you just need to deploy it. There are various ways that this could be done – from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended).
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue