/ / समाप्त करने के लिए पिछले gulp कार्यों की प्रतीक्षा कर रहे हैं - git, परिनियोजन, gulp

पिछले गल्प कार्यों को समाप्त करने की प्रतीक्षा - गिट, तैनाती, गल्प

मैं अपनी तैनाती प्रक्रिया को स्वचालित करने की कोशिश कर रहा हूंgulp और gulp-git, लेकिन मैं एक ऐसी समस्या में भाग रहा हूँ जहाँ मैं git पर धक्का देता हूँ, फिर बिल्ड फ़ाइलों को साफ़ करने की कोशिश करता हूँ, लेकिन यह धक्का समाप्त होने से पहले चलता है। क्या gulp को पिछले करने तक प्रतीक्षा करने के लिए मजबूर करने का एक तरीका है। कमांड समाप्त हो गया है? या जब तक कुछ अन्य शर्त पूरी नहीं हो गई है? या क्या मैं इसे गलत तरीके से बता रहा हूं?

यहाँ मेरी gulp स्क्रिप्ट है:

var gulp = require("gulp");
var git = require("gulp-git");
var minifyCss = require("gulp-minify-css");
var uglify = require("gulp-uglify");
var runSequence = require("run-sequence");

//Main Deploy Task
gulp.task("deploy", function(){
runSequence(
"deploy-branch",
"minify-css",
"minify-js",
"commit-all",
"git-push",
"clear-static",
"master-branch",
"remove-deploying"
);
});

//Creates a branch called deploying
gulp.task("deploy-branch",function(){
git.checkout("deploying", {args:"-b"}, function(err){
if (err) throw err;
});
});

//Minifies css
gulp.task("minify-css",function(){
return gulp.src("static/**/**/*.css")
.pipe(minifyCss({compatibility: "ie8"}))
.pipe(gulp.dest("static")); //Return in place
});

//Minifies js
gulp.task("minify-js",function(){
return gulp.src("static/**/**/*.js")
.pipe(uglify({mangle: false}))
.pipe(gulp.dest("static"));
});

//Commit
gulp.task("commit-all", function(){
return gulp.src("./static/*")
.pipe(git.commit("deploying commit"));
});

//Pushes to the remote repo
gulp.task("git-push",function(){
git.push("production", "deploying", function(err){
if (err) throw err;
});
});

//Clear Minified Files
gulp.task("clear-static",function(){
gulp.src("static/*")
.pipe(git.checkoutFiles());
});

//Returns to master branch
gulp.task("master-branch",function(){
git.checkout("master", function(err){
if (err) throw err;
});
});

//Deletes Deploying Branch
gulp.task("remove-deploying",function(){
//Delete deploying branch
git.branch("deploying", {args:"-D"}, function(err){
if (err) throw err;
});
});

उत्तर:

जवाब के लिए 0 № 1

अपना संशोधन करने का प्रयास करें git-push इस तरह का कार्य:

gulp.task("git-push",function(done){
git.push("production", "deploying", function(err){
if (err) throw err;
}, done);
});

क्योंकि पाइप वापस करने का सामान्य तंत्र काम नहीं करता है git.pushजिस फ़ंक्शन को आगे निष्पादित किया जाना चाहिए, उसे सीधे इस तरह से पारित किया जा सकता है। इसलिए इसे अगले कार्य की प्रतीक्षा करनी चाहिए git.push समाप्त हो गया है, क्योंकि git.push एक है कि अगले कार्य बुला रहा है।