LinodeにVPSがあり、コードはgitHubでホストされています。 gitHubにプッシュすると、linodeサーバーにも自動的にプッシュされるように設定するにはどうすればよいですか。 linodeサーバーではPHPを使用しています。
ありがとう。
あなたはおそらく GitHubのポスト受信フック を使用したいと思います。
要約すると、GitHubはPOSTがリポにプッシュすると、指定されたURLにアクセスします。短いPHPスクリプトを記述してLinode VPSで実行し、 GitHubがPOSTを受け取ったとき。
私は、Pythonで小さな Github-Auto-Deploy サーバーを作成しました。
私は結局、リポジトリから新しい更新を自動的にプルダウンする(Karlに似ていますが、PHPの)独自の初歩的なデプロイメントツールを作成しました- https://github.com/jesalg/SlimJim -基本的にリッスンしますgithub post-receive-hookに接続し、プロキシを使用して更新スクリプトをトリガーします。
多分私はコンテキスト外ですが、コマンドラインからプッシュする場所を手動で選択することを好みます。例:git Push linode
これを行うには、linodeサーバーにリポジトリコンテナーを作成し、最後にプッシュされたコミットにフォルダーをチェックアウトするポスト受信フックを作成します
Git repoコンテナを作成するmkdir /var/repo && cd /var/repo git --bare init
受信後フックを/var/repo/hooks/
touch post-receive nano post-receive chmod +x post-receive
に作成します
受信後のコンテンツ#!/bin/sh git --work-tree=/var/www/ --git-dir=/var/repo checkout -f
ローカルリポジトリgit remote add linode root@<linode ip|domain>:/var/repo git Push linode
コードがデプロイされました
このチュートリアルを参照してください。
GitHubのサービスフックを使用してWebサイトを自動的に更新する :
簡単に言うと、次の手順について説明します。
サーバーの.git
フォルダーにphpファイルを作成し、次の内容を含めます。
<?php `git pull`;?>
SSHキーが存在するようにサーバーを設定します。何かのようなもの:
key. cat ~/.ssh/id_rsa.pub
GitHubにサービスフックを設定します。入力WebHook URL:
http://your.domain.com/path/to/yourfile.php
すべてが設定されている場合。 GitHubにプッシュするたびに、ファイルはすべての作業をサーバーにデプロイします。
任意の種類のWebhookを使用するには、そのフックのリスナーをデプロイし、リスナーサーバーのホストからアクションをトリガーする必要があります。
GitHub Actions(2018年10月)を使用して、今すぐショートカットを作成できます(2018年10月)。
GitHubアクションを使用すると、コンテナーを接続および共有して、ソフトウェア開発ワークフローを実行できます。自分でコードを実行しなくても、GitHubまたは外部システムで、任意の言語でプロジェクトを簡単にビルド、パッケージ、リリース、更新、デプロイできます。
アクションを参照してください:プッシュは アクションの背後にある可能性の1つだけです!
ワークフローは、GitHubプラットフォームのイベント(プッシュ、発行、リリースなど)によってトリガーされ、それに応じて一連のシリアルアクションまたはパラレルアクションを実行できます。コミュニティによって構築および維持されている、あなたが知っていて気に入っているサービスのアクションを組み合わせて構成します。