杰基尔& Wercker - 如何部署子目录

时间:2016-08-04 16:53:52

标签: ftp continuous-integration jekyll continuous-deployment wercker

问题:我无法通过Wercker将Jekyll构建文件夹部署到FTP服务器。

我一直在使用Wercker来继续整合我正在研究的Jekyll网站。使用下面的脚本,构建过程:jekyll buildjekyll doctor似乎按预期工作。

我的部署步骤应该上传" _site"文件夹到我的FTP服务器。我目前正在使用duleorlovic的ftp-deploy wercker步骤。它目前正在上传整个目录,而不仅仅是构建文件夹。

但是,Jekyll使用/_site文件夹作为构建网站的目录...我怎样才能将上传限制为/_site构建文件夹?

感谢。

当前wercker.yml如下:

# Wercker Configuration
# continuous delivery platform that helps software developers 
# build and deploy their applications and microservices

box: ruby
build:
  steps:

    # Install dependencies
    - bundle-install

    # Execute jeykyll doctor command to validate the
    # site against a list of known issues.
    - script:
        name: jekyll doctor
        code: bundle exec jekyll doctor

    - script:
        name: jekyll build
        code: bundle exec jekyll build --trace

deploy:
  steps:
    - duleorlovic/ftp-deploy:
        destination: $FTP_SERVER
        username: $FTP_USERNAME
        password: $FTP_PASSWORD
        timeout: 15
        remote-file: remote.txt

2 个答案:

答案 0 :(得分:0)

解决了这个问题。

显然,Worker提供了一个名为$WERCKER_OUTPUT_DIR的环境变量。此目录是在构建步骤通过时通过管道传递到部署步骤的文件夹。如果没有传递任何东西,部署步骤只使用了根目录(又名不是你的构建文件夹)。

工作wercker.yml包含jekyll build步骤,如下所示:

   - script:
       name: jekyll build
       code: bundle exec jekyll build --trace --destination "$WERCKER_OUTPUT_DIR"

我无法在此问题上为Wercker文档找到更多信息,因为它似乎在版本之间的转换中,但我在如何使用wercker的示例中找到了解决方案。

您可以在指南How Wercker Works.

中看到使用输出目录的示例

答案 1 :(得分:0)

通过将cwd:参数传递给步骤,您可以更改工作目录(根据wercker doc):

deploy:
  steps:
  - duleorlovic/ftp-deploy:
      cwd: _site/
      destination: $FTP_SERVER
      username: $FTP_USERNAME
      password: $FTP_PASSWORD
      timeout: 15
      remote-file: remote.txt