Travis CI仅从构建脚本上传空文件

问题描述 投票:0回答:1

我目前正在尝试在Travis CI上建立一个文档项目。构建脚本使用mkdocs库将markdown文件生成为HTML文件。我现在已经尝试了许多小时才能使用Travis CI自动执行部署过程。它应该直接在Travis CI上生成文件,然后将其上传到FTP服务器。

我尝试过的事情

所以我已经将此.travis.yml文件提交到我的Github存储库。

language: python
python: 
  - "2.7"
env:
  global:
    #FTP_USERNAME
    - secure: "N9knL6LsuiZ....."
    #FTP_PASSWORD
    - secure: "NrRpwCeay7Y0s....."
install: 
  - pip install mkdocs
  - mkdocs --version
script:
  - mkdocs build
after_success:
  - find documentation -type f -exec curl -u "${FTP_USERNAME}:${FTP_PASSWORD}" --verbose --progress-bar --ftp-create-dirs --max-time 30 -T {} ftp://my.ftp-server.com/{} \;

mkdocs构建脚本不会将生成的文件输出到根文件夹“ documentation”中。实际上,除非FTP服务器上的目录不存在,否则此代码有效。

什么不起作用

我在本地尝试了相同的代码(只是运行after_success命令),并且在那里正确上传了包含内容的文件。当Travis-CI现在开始将文件上传到我的FTP服务器时,它以传输开始,但直到抛出超时异常才结束传输。当我检查服务器上的文件时,它仅创建了空文件。

也许有人可以帮助我为什么会出现此问题?

python ftp travis-ci mkdocs
1个回答
0
投票

我现在在Travis CI Blog上发现了一些有趣的东西。他们描述的是,普通Travis CI环境不再支持FTP协议。它在部署中使用不同的NAT的事实使FTP服务器不确定请求,并且将阻止内容请求。

解决方案>>

因此,必须在FTP服务器上使用SFTP或VPN连接,才能在Travis CI上部署文件。但是,还有许多其他CI / CD解决方案。我现在个人使用Github Actions,效果很好。甚至还有一个FTP Upload模块。

这可能是它不上传文件的原因,因为它将文件写入FTP服务器已经阻止了该请求的位置。

© www.soinside.com 2019 - 2024. All rights reserved.