[英]BitBucket Pipeline - Build and deploy using node / gulp / git ftp
I noticed yesterday that BitBucket supported CICD pipelines, which is an amazing feature I'm eager to use. 昨天我注意到BitBucket支持CICD管道,这是我渴望使用的一个了不起的功能。
I have however some difficulty setting it up. 但是我设置起来有些困难。
My building process in general: 我的建设过程一般:
The gulp command is building the HTML application and places the output to a build
folder. gulp命令正在构建HTML应用程序并将输出放置到
build
文件夹。 After the build has been completed, I'd like the code to be transfered to a directory on my website. 构建完成后,我希望将代码转移到我网站上的目录中。
This translates to the following bitbucket.yml
: 这转换为以下
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
The issue I'm getting is that the git ftp init
seems to be uploading the src
folder, and not the contents of the build
one which is created during the gulp
step. 我得到的问题是
git ftp init
似乎是上传src
文件夹,而不是在gulp
步骤中创建的build
内容。
Any ideas? 有任何想法吗?
Update: --syncroot
does seem to be a partial fix. 更新:--
--syncroot
似乎是一个部分修复。 Meaning it does try to upload the build
directory now. 这意味着它现在尝试上传
build
目录。 However, the problem at this point is that git ftp
only seems to be syncing tracked files. 但是,此时的问题是
git ftp
似乎只是同步跟踪文件。
Because the files in the build
folder are created during the pipeline build, that does not apply to those. 因为
build
文件夹中的文件是在管道构建期间创建的,所以不适用于这些文件。
I have tried to add a file named .git-ftp-include
, which as described should transfer untracked files. 我试图添加一个名为
.git-ftp-include
的文件, .git-ftp-include
应该传输未跟踪的文件。 Sadly, I haven't been successful in deploying my code. 遗憾的是,我没有成功部署我的代码。
.git-ftp-include
file contents: build/index.html:/src/index.html .git-ftp-include
文件内容:build / index.html:/src/index.html
Which basically says: upload index.html
from the build
syncroot whenever the index.html
in the src
directory is changed. 基本上说:每当
src
目录中的index.html
发生更改时,都会从build
同步根中上传index.html
。
对于要通过git-ftp
传输的未跟踪文件, .git-ftp-include
的语法是!filename 。
In this case I recommend that you use ncftp
. 在这种情况下,我建议您使用
ncftp
。 In the Pipelines will be something like: 在管道中将是这样的:
- apt-get -qq install ncftp
- ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST /remote build/*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.