Automated .gitlab-ci.yml lftp configuration



我正在使用lftp来自动化gitlab ci部署。我运行一个脚本来部署我的代码,除了我需要上传到其他服务器的"静态"文件。这是我当前代码的示例。

script:
- >
  lftp
  -e "mirror
  --exclude ^.git.*
  --exclude-glob *.sql
  --exclude-glob *.sqlite3
  --exclude-glob *.txt
  --exclude-glob *.csv
  --exclude-glob *.pyc
  --exclude settings.py
  --exclude migracion/
  --exclude static/
  --exclude ^Resources/Private/
  --exclude .gitlab-ci.yaml
  -eRv $CI_PROJECT_DIR /pro/ject/dirs; quit;"
  sftp://$ACC

这工作正常,但在此之后,我必须手动将静态文件上传到静态文件服务器。你能帮我一个只获取所有静态文件夹中文件的脚本吗?静态文件夹可以位于根文件夹中,也可以位于其他文件夹中。多谢。

您可以使用:

lftp -u username,passwd ftp.foobar.cmo 
     -e "mirror -e -R -x .git -x static/ -p ./ dev-site ; quit"

其中,在镜子中:

  • -e:删除不再存在的文件
  • -R:表示您从本地计算机上传到FTP服务器
  • -x:指定要排除的目录。您可以有多个-x
  • -p:并行化
  • ./:您要上传的本地目录
  • dev-site:必须上传的远程目录。注意远程目录参数:
    • 如果它以尾迹 ( dev-site/ 结尾 ),您当前的目录将上传到 FTP 服务器上的此目录
    • 如果它不以跟踪 ( dev-site 结尾),则您当前的目录将作为此目录上传到 FTP 服务器上

如果要将其与 GitLab CI 一起使用来上传静态生成的文档,下面是一个带有 mkdocs + lftp 的示例.gitlab-ci.yml

# Build static html site with mkdocs :
build:
  stage: build
  script:
  - mkdocs build
 # first upload, exclude static files:
  - lftp -u ftp_username,$FTP_PASSWORD ftp.foobar.org -e "mirror -x static -R -p site dev ; quit"
 # upload only static to other server:
 - lftp -u ftp_username,$FTP_PASSWORD ftp.otherserv.org -e "mirror -R -p static/ remote/dir ; quit"

相关内容

  • 没有找到相关文章

最新更新