BitBucket管道 - 使用node / gulp / git构建和部署ftp

时间:2017-07-13 14:14:01

标签: node.js git ftp bitbucket bitbucket-pipelines

我昨天注意到BitBucket支持CICD管道,这是我渴望使用的一个了不起的功能。

但是我设置起来有些困难。

我的建设过程一般:

  • npm install
  • npm install -g bower
  • bower install
  • npm install -g gulp

gulp命令正在构建HTML应用程序并将输出放置到build文件夹。构建完成后,我希望将代码转移到我网站上的目录中。

这转换为以下bitbucket.yml

# This is a sample build configuration for JavaScript.
# Check our guides at https://confluence.atlassian.com/x/14UWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: node:6.9.4

pipelines:
  default:
    - step:
        caches:
          - node
        script: # Modify the commands below to build your repository.
          - npm install
          - npm install -g bower
          - bower install --allow-root
          - npm install -g gulp
          - gulp
          - cd build
          - apt-get update
          - apt-get -qq install git-ftp
          - git ftp init --user $FTP_USERNAME --passwd $FTP_PASSWORD ftp://mywebsite.com/public_html/mydirectory

我得到的问题是git ftp init似乎正在上传src文件夹,而不是buildgulp期间创建的内容}步骤。

有什么想法吗?

更新: --syncroot似乎确实是部分修复。这意味着它现在尝试上传build目录。但是,此时的问题是git ftp似乎只是同步跟踪的文件。

由于build文件夹中的文件是在管道构建期间创建的,因此不适用于这些文件。

我尝试添加名为.git-ftp-include的文件,如上所述,该文件应传输未跟踪的文件。遗憾的是,我没有成功部署我的代码。

.git-ftp-include文件内容:     建立/ index.html中:/src/index.html

基本上说:只要index.html目录中的build发生更改,就会从index.html同步根目录上传src

2 个答案:

答案 0 :(得分:0)

对于git-ftp要传输的未跟踪文件,.git-ftp-include中的语法为!filename

答案 1 :(得分:0)

在这种情况下,我建议您使用ncftp。在管道中将显示以下内容:

- apt-get -qq install ncftp
- ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST /remote build/*
相关问题