【问题标题】:Deploy a Gulp build after Git push在 Git 推送之后部署 Gulp 构建
【发布时间】:2017-02-21 12:43:08
【问题描述】:

我刚刚完成了一个 Gulp 脚本来优化我的 Wordpress 项目。这是我的主题结构:


  • /dev/(工作文件)
  • /bower.json(bower 包列表)
  • /gulpfile.js(我所有的 gulp 任务,例如 minify、concat、...)
  • /package.json(节点包列表)
  • /node_modules/(gulp 包)
  • /bower_components/(我的主题中使用的前端包)

我的gulp build 命令创建一个包含“ready to go”主题的 /dist/ 目录。

我只使用 GitLab 跟踪 /dev/ 目录和 gulpfile.js、package.json 文件。我的目标如下:

对于每个push origin master,我想在我的 “/wp-content/themes/theme-name/”中的生产服务器。

有什么想法吗?我正在为此苦苦挣扎:(

【问题讨论】:

    标签: git deployment gulp


    【解决方案1】:

    git hook 可能就是你想要的

    pre-push 钩子在 git push 期间运行,在远程 refs 更新之后但在任何对象传输之前。它接收远程的名称和位置作为参数,并通过标准输入接收要更新的参考列表。您可以使用它在推送发生之前验证一组 ref 更新(非零退出代码将中止推送)。

    所以你所要做的就是创建一个 git 钩子,以 bash 命令的形式触发到远程服务器的推送

    【讨论】:

    • 我已经在使用 git hooks,但它只是将我的 git 存储库“复制/粘贴”到服务器中。我不知道如何才能实现我的目标?
    • 或者可能通过 CLI 构建、删除其他文件等...?
    • 在您的开发环境中添加一个 pre-push hook,它将您的 dist 文件夹上传到您服务器上的指定文件夹
    【解决方案2】:

    如果不访问您的服务器,我们就不能乱搞和测试,所以我只能说“我会尝试……”但如果您设置了 FTP,我会尝试vinyl-ftp

    这个例子直接来自vinyl-ftp (0.5.0, 2016-06-18) 文档,只是为了让这个答案更全面一点。您需要自定义 globsbase 变量以及 conn 目标。 (您也可以删除log 参数)

    var gutil = require( 'gulp-util' );
    var ftp = require( 'vinyl-ftp' );
    
    gulp.task( 'deploy', function () {
    
        var conn = ftp.create( {
            host:     'mywebsite.tld',
            user:     'me',
            password: 'mypass',
            parallel: 10,
            log:      gutil.log
        } );
    
        var globs = [
            'src/**',
            'css/**',
            'js/**',
            'fonts/**',
            'index.html'
        ];
    
        // using base = '.' will transfer everything to /public_html correctly
        // turn off buffering in gulp.src for best performance
    
        return gulp.src( globs, { base: '.', buffer: false } )
            .pipe( conn.newer( '/public_html' ) ) // only upload newer files
            .pipe( conn.dest( '/public_html' ) );
    
    } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 2013-09-02
      • 2015-08-23
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多