2016-04-17 19 views
0

ビルドされた成果物をサーバーにアップロードすることで、(TravisCIを使用して)デプロイメントプロセスを自動化したい場合は、自動的にこれらのアップロードを登録し、このためCURLで複数のファイルをアップロード

私は、ビルドプロセスが成功した後に実行されますシェルスクリプト書いた:

find $TRAVIS_BUILD_DIR/dist/*.tar -type f -exec curl --ftp-create-dirs -T {} -u user:pass ftp://my.server.com/uploads/{} \; 

を(先のパスで)最後の{}は、問題が発生します。

uploads/home/travis/build/owner/repo/dist/myartifact.tar

私は{}を削除した場合、私はFTP 553エラーの束で終わる:TravisCIでは、これらのファイルには、先に{}を追加するだけでなく、これらのディレクトリを作成します、パス/home/travis/build/owner/repo/distであるのが普通です。 findをパス全体ではなくファイル名に書き込む方法はありますか?

+0

あなたは、単純な 'for'ループを使用することができます –

答えて

0

xargsとパラメータ代入して試してみてください:

find . -type f | xargs -L 1 bash -c 'curl --ftp-create-dirs -T $1 -u user:pass ftp://my.server.com/uploads/${1##*/}' \; 
関連する問題