自动化 .gitlab-ci.yml lftp 配置
Automated .gitlab-ci.yml lftp configuration
我正在使用 lftp 来自动化 gitlab ci 部署。我 运行 一个脚本来部署我的代码,除了 'static' 我需要上传到其他服务器的文件。这是我当前代码的示例。
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/
) 结尾,您当前的目录将上传 INSIDE ftp 服务器上的此目录
- 如果它没有以路径结尾 (
dev-site
),您当前的目录将被上传 AS ftp 服务器上的这个目录
如果您将此与 GitLab CI 一起使用以上传您的 static-generated 文档,这里有一个 .gitlab-ci.yml
和 mkdocs
+ lftp
的示例:
# 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"
我正在使用 lftp 来自动化 gitlab ci 部署。我 运行 一个脚本来部署我的代码,除了 'static' 我需要上传到其他服务器的文件。这是我当前代码的示例。
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/
) 结尾,您当前的目录将上传 INSIDE ftp 服务器上的此目录 - 如果它没有以路径结尾 (
dev-site
),您当前的目录将被上传 AS ftp 服务器上的这个目录
- 如果它以尾迹 (
如果您将此与 GitLab CI 一起使用以上传您的 static-generated 文档,这里有一个 .gitlab-ci.yml
和 mkdocs
+ lftp
的示例:
# 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"