web-dev-qa-db-ja.com

プッシュ時にGitHubからサーバーに自動的にデプロイする

LinodeにVPSがあり、コードはgitHubでホストされています。 gitHubにプッシュすると、linodeサーバーにも自動的にプッシュされるように設定するにはどうすればよいですか。 linodeサーバーではPHPを使用しています。

ありがとう。

32
Justin

あなたはおそらく GitHubのポスト受信フック を使用したいと思います。

要約すると、GitHubはPOSTがリポにプッシュすると、指定されたURLにアクセスします。短いPHPスクリプトを記述してLinode VPSで実行し、 GitHubがPOSTを受け取ったとき。

23
Kristian Glass

私は、Pythonで小さな Github-Auto-Deploy サーバーを作成しました。

  • Githubで新しい post-receive service hook にドメインを入力します
  • ローカルリポジトリのパスを構成ファイルのリポジトリURLと一致させます
  • サーバーはgithubからリクエストを受け取り、ローカルリポジトリパスでgit pullを実行します
  • また、提供する場合は、後で展開用のシェルスクリプトを実行します。
15
Karl

私は結局、リポジトリから新しい更新を自動的にプルダウンする(Karlに似ていますが、PHPの)独自の初歩的なデプロイメントツールを作成しました- https://github.com/jesalg/SlimJim -基本的にリッスンしますgithub post-receive-hookに接続し、プロキシを使用して更新スクリプトをトリガーします。

3
jesal

多分私はコンテキスト外ですが、コマンドラインからプッシュする場所を手動で選択することを好みます。例: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

コードがデプロイされました

2
user2131283

このチュートリアルを参照してください。
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にプッシュするたびに、ファイルはすべての作業をサーバーにデプロイします。

1
Chetabahana

任意の種類のWebhookを使用するには、そのフックのリスナーをデプロイし、リスナーサーバーのホストからアクションをトリガーする必要があります。

GitHub Actions(2018年10月)を使用して、今すぐショートカットを作成できます(2018年10月)。

GitHubアクションを使用すると、コンテナーを接続および共有して、ソフトウェア開発ワークフローを実行できます。自分でコードを実行しなくても、GitHubまたは外部システムで、任意の言語でプロジェクトを簡単にビルド、パッケージ、リリース、更新、デプロイできます。

アクションを参照してください:プッシュは アクションの背後にある可能性の1つだけです!

ワークフローは、GitHubプラットフォームのイベント(プッシュ、発行、リリースなど)によってトリガーされ、それに応じて一連のシリアルアクションまたはパラレルアクションを実行できます。コミュニティによって構築および維持されている、あなたが知っていて気に入っているサービスのアクションを組み合わせて構成します。

1
VonC