Автоматическая конфигурация.gitlab-ci.yml lftp
Я использую 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
Это работает нормально, но после этого мне нужно вручную загрузить статические файлы на сервер статических файлов. Можете ли вы помочь мне со скриптом, который выбирает файлы только во всех статических папках? Статические папки могут быть в корне и внутри других папок. Многие Thx.
1 ответ
Решение
Ты можешь использовать:
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
: распараллелить./
: local dir вы хотите загрузитьdev-site
: удаленный каталог, куда должны идти загрузки. Позаботьтесь о параметре remote dir:- если кончится след (
dev-site/
), ваш текущий каталог будет загружен внутри этого каталога на FTP-сервере - если это не заканчивается следом (
dev-site
), ваш текущий каталог будет загружен как этот каталог на FTP-сервер
- если кончится след (
Если вы хотите использовать это с GitLab CI для загрузки вашей статически сгенерированной документации, вот пример .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"