Gitlab リポジトリから本番サーバーで実行されているライブ Web サイトに新しい作業を自動的にデプロイしたいと考えています。live
ライブ Web サイトは、ブランチの GIT リポジトリ クローンです。
私の質問:
「ビルド」が発生するたびに、ランナーは私のレポを新たにクローンするように見え
~/builds/...
ます. これは必須の動作ですか?私が本当に欲しいと思うのはgit pull
、実稼働 Web サイトのディレクトリ内だけです。本当に毎回レポをクローンしなければならないのなら、なぜそうしないの
git reset
ですか? 少なくとも、時間の経過とともに帯域幅を大幅に節約できますよね?deploy.sh
リポジトリのルートにあるmy which を実行するにはどうすればよいですか? 現在、gitlab.com のビルド情報で次のエラーが表示されます。bash: line 23: deploy.sh: command not found
私の.gitlab-ci.yml
ファイル:
deploy_to_production:
script:
- deploy.sh
only:
- live
tags:
- prod
詳細
deploy.sh
これを行うには、レポの特定のブランチ (私の場合はブランチ) にプッシュするたびに、私が書いた単純なシェル スクリプト ( ) を本番サーバーで実行したいと考えていますlive
。このシェル スクリプトは、私の.gitlab-ci.yml
.
スクリプトは基本的にgit reset
, fetch
andpull
を実行するだけで、本番バージョンをリポジトリの内容に合わせて最新の状態にします。
サーバーに「シェル」マルチランナーをインストールし、それを gitlab.com に接続しました。そこでアクティブになっていることがわかります。
全体として、私は間違ったツリーを吠えていますか? deploy.sh
新しい作業の git チェックアウトを行わないように変更する必要がありますが、新しいコードを使用するcp
か、おそらく新しいコードを本番 Web サイトrsync
に移動する必要がありますか?~/builds/...