2017-01-13 25 views
2

私はgitlab ciの自動デプロイメントにlftpを使用しています。私は他のサーバーにアップロードする必要がある '静的な'ファイルを除いて、自分のコードを展開するスクリプトを実行します。ここに私の現在のコードのサンプル。自動.gitlab-ci.yml lftp設定

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。あなたは使用することができます

答えて

6

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サーバ上のINSIDEこのディレクトリにアップロードされます
    • それはトレイルで終わっていない場合YOUTはあなたの静的生成されたドキュメントをアップロードするGitLab CIでこれを使用する場合(dev-site)、あなたの現在のディレクトリは、私はここで、ftpサーバ

ASこのディレクトリにアップロードされます例.gitlab-ci.ymlmkdocs + 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" 
関連する問題