ホームページ > バックエンド開発 > PHPチュートリアル > SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-10 15:08:30
オリジナル
241 人が閲覧しました

SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

キーテイクアウト

    継続的な統合および配信サービスである
  • Semaphoreciは、Laravel EnvoyまたはDeployerと併用して、テストに成功した後に展開プロセスを自動化できます。 Laravel EnvoyやDeployerなどの展開ツールを設定して、サーバーを定義し、展開プロセスを処理するタスクを作成することにより、Semaphoreciを使用することができます。展開戦略は、自動または手動展開のオプションを使用して、Semaphoreciのプロジェクトのページで構成できます。
  • 統合および展開プロセスは、リポジトリの変更をコミットすることによりトリガーされます。問題が発生した場合、Semaphoreciはログを表示して問題を調査する機能を提供します。また、さらにトラブルシューティングを行うためにビルドサーバーにSSHを使用するオプションも提供します。
  • この記事は、Wern AnchetaとViraj Khatavkarによって査読されました。 SetePointコンテンツを最高にするためにSitePointのピアレビュアーのすべてに感謝します!
テスト自動化、継続的な統合、および継続的な配信は、現在コミュニティで非常に広まっています。これにより、開発者にとってプロセスをより楽しく、圧倒的にしようとする複数のサービスが実現したため、ツールを構築/構成する代わりにソフトウェアの配信に集中できます。これらのサービスの1つはSemaphoreciです この記事では、テストを成功させた後、独自の展開スクリプトとツールを使用して展開プロセスを継続する方法について説明します。

Semaphoreciを使用して継続的な配信と展開者に使用して、コードをDigitalOcean生産サーバーにプッシュします。 Deployerに慣れていない場合は、この紹介をチェックすることをお勧めします。


デモアプリケーション

市場からの写真をロードする500pxアプリケーションを使用します。 Laravelを使用して構築されたので、ここで建築プロセスに関する記事全文を読んで、GitHubでレポを見つけることができます。

デプロイヤースクリプトの作成

展開者の動作方法は、サーバーを定義し、それらのサーバーにアプリケーションを展開するプロセスを処理するタスクを作成することです。 deploy.phpスクリプトは次のようになります

この特定のスクリプトが何をしているのかについて詳しく知りたい場合は、

Deployerの記事を読む必要があります。次のステップは、Semaphoreciプロジェクトを設定することです。 Semaphoreciを試したことがない場合は、クラッシュコースの記事を読んでください。 SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?展開のセットアップ

展開戦略を構成するには、プロジェクトのページに移動して、展開のセットアップをクリックする必要があります。

次に、一般的な展開オプションを選択して、Semaphoreciが手動構成を自由に追加できるようにします。

SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

自動展開を選択した後、Semaphoreciは展開コマンドを指定する機能を提供します。マニュアルと自動の違いは、成功したテストのたびに自動展開がトリガーされ、マニュアルにより成功したコミットを展開できることです。

SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

deplayer.pharをリポジトリにファーファイルとして含めるか、Composerを使用して要求することを選択できます。いずれにせよ、コマンドは似ています

注:Semaphoreciは、展開プロセス専用の新しいSSHキーを作成することをお勧めします。誰かが私たちの鍵などを盗んだ場合、簡単に取り消すことができます。キーは、最後に保存する前に暗号化されます。

SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?キーは〜/.ssh/id_rsaで利用可能であるため、default。

プッシュへのプッシュ

すべてがセットアップされたので、統合と展開プロセスをトリガーするためにリポジトリにいくつかの変更をコミットする必要があります。

何か問題が発生した場合、展開プロセスの失敗をクリックしてログを表示して問題をさらに調査できます。

<span><span><?php 
</span></span><span>
</span><span><span>require_once "recipe/common.php";
</span></span><span>
</span><span><span>set('ssh_type', 'native');
</span></span><span><span>set('default_stage', 'staging');
</span></span><span><span>env('deploy_path', '/var/www');
</span></span><span><span>env('composer_options', 'install --no-dev --prefer-dist --optimize-autoloader --no-progress --no-interaction');
</span></span><span><span>set('copy_dirs', [
</span></span><span>    <span>'app/commands',
</span></span><span>    <span>'app/config',
</span></span><span>    <span>'app/controllers',
</span></span><span>    <span>'app/database',
</span></span><span>    <span>'app/lang',
</span></span><span>    <span>'app/models',
</span></span><span>    <span>'app/src',
</span></span><span>    <span>'app/start',
</span></span><span>    <span>'app/tests',
</span></span><span>    <span>'app/views',
</span></span><span>    <span>'app/filters.php',
</span></span><span>    <span>'app/routes.php',
</span></span><span>    <span>'bootstrap',
</span></span><span>    <span>'public',
</span></span><span>    <span>'composer.json',
</span></span><span>    <span>'composer.lock',
</span></span><span>    <span>'artisan',
</span></span><span>    <span>'.env',
</span></span><span><span>]);
</span></span><span>
</span><span><span>set('shared_dirs', [
</span></span><span>    <span>'app/storage/cache',
</span></span><span>    <span>'app/storage/logs',
</span></span><span>    <span>'app/storage/meta',
</span></span><span>    <span>'app/storage/sessions',
</span></span><span>    <span>'app/storage/views',
</span></span><span><span>]);
</span></span><span><span>set('writable_dirs', get('shared_dirs'));
</span></span><span><span>set('http_user', 'www-data');
</span></span><span>
</span><span><span>server('digitalocean', '174.138.78.215')
</span></span><span>    <span>->identityFile()
</span></span><span>    <span>->user('root')
</span></span><span>    <span>->stage('staging');
</span></span><span>
</span><span><span>task('deploy:upload', function() {
</span></span><span>    <span>$files = get('copy_dirs');
</span></span><span>    <span>$releasePath = env('release_path');
</span></span><span>
</span><span>    <span>foreach ($files as $file)
</span></span><span>    <span>{
</span></span><span>        <span>upload($file, "<span><span>{$releasePath}</span>/<span>{$file}</span>"</span>);
</span></span><span>    <span>}
</span></span><span><span>});
</span></span><span>
</span><span><span>task('deploy:staging', [
</span></span><span>    <span>'deploy:prepare',
</span></span><span>    <span>'deploy:release',
</span></span><span>    <span>'deploy:upload',
</span></span><span>    <span>'deploy:shared',
</span></span><span>    <span>'deploy:writable',
</span></span><span>    <span>'deploy:symlink',
</span></span><span>    <span>'deploy:vendors',
</span></span><span>    <span>'current',// print current release number
</span></span><span><span>])->desc('Deploy application to staging.');
</span></span><span>
</span><span><span>after('deploy:staging', 'success');
</span></span>
ログイン後にコピー

上記のスクリーンショットは、McRyptの拡張機能が有効になっていないため、PHPの職人がクリアコンパイルされたコマンドがエラーを返しているため、失敗したコミットです。 SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?注:Semaphoreciが提供するもう1つのきちんとしたトリックは、ビルドサーバーにsshingして、何がうまくいかなかったかを確認することです。

その他の展開ツールSemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

ここで使用したのと同じプロセスが、他の展開ツールに適用される場合があります。たとえば、Laravel Envoyは、次のように構成される場合があります

deploymentコマンドステップでは、特使をインストールして実行します。

それだけです!特使は、追加したキーを使用して認証し、指定したアップデートコマンドを実行します。

結論SemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?

CI/CDツールは、開発者のワークフローにとって大きな改善であり、チームが新しいコードを生産システムに統合するのに確かに役立ちます。 Semaphoreciは、使いやすいインターフェイスと素晴らしいサポートにお勧めする素晴らしい選択です。コメントや質問がある場合は、以下に投稿してください!に関するよくある質問(FAQ) 継続的な統合のためにLaravel EnvoyをSemaphoreciに統合するにはどうすればよいですか?

​​

Laravel EnvoyをSemaphoreciと統合するには、いくつかのステップが含まれます。まず、SemaphoreciにLaravelプロジェクトを設定する必要があります。その後、Composerを使用してプロジェクトにEnvoyをインストールする必要があります。インストールしたら、Project Root DirectoryにEnvoy.blade.phpファイルを作成できます。このファイルには、自動化するすべてのタスクが含まれます。次に、Semaphoreciパイプラインに新しいコマンドを追加して、Envoyタスクを実行できます。コマンドは次のようになります:PHP Vendor/Bin/Envoy Run Deploy。 、LaravelのようなPHPアプリケーションに機能的で完璧です。 Laravelにすぐに使用できるサポートを提供するため、Laravelアプリケーションを展開するためにカスタムスクリプトを作成する必要はありません。 Deployerは、リポジトリから最新のコードを取得したり、作曲家の実行を実行したり、移行を実行したり、PHP-FPMの再起動など、すべての展開タスクを処理します。また、ゼロダウンタイムの展開、アトミック展開、並列展開もサポートしています。これにより、展開時間を大幅に短縮できます。 Gitlab Ci/CD LaravelとEnvoyを使用すると、プロジェクトルートディレクトリに.gitlab-ci.ymlファイルを作成する必要があります。このファイルは、CI/CDパイプラインの段階を定義します。アプリケーションをテストするための段階、アプリケーションを構築するための段階、およびアプリケーションを展開するための段階を定義できます。展開段階では、Envoyを使用して展開タスクを自動化できます。 .gitlab-ci.ymlファイルにスクリプトを追加して、このような使節タスクを実行するだけです。 /cd?

​​

CI/CD用のLaravelの構成には、テスト環境のセットアップ、アプリケーションのテストの作成、ビルドプロセスの設定、展開プロセスの設定が含まれます。 Phpunitを使用して、依存関係を管理するための作曲家、Laravel EnvoyやDeployerなどのツールを展開タスクを自動化できます。また、SemaphoreciやGitLab CI/CDなどのCI/CDプラットフォームを選択し、テストを実行し、アプリケーションを構築し、アプリケーションを展開するように構成する必要があります。

CI/CDおよびEnvoyでLaravelアプリケーションを展開するにはどうすればよいですか?

​​

CI/CDおよびEnvoyを使用してLaravelアプリケーションを展開するには、展開段階を含むCI/CDパイプラインのセットアップが含まれます。この段階では、Envoyを使用して展開タスクを自動化できます。 Project Root DirectoryにEnvoy.blade.phpファイルを作成し、このファイルにタスクを定義するだけです。次に、CI/CDパイプラインにコマンドを追加して、Envoyタスクを実行できます。コマンドは次のようになります:PHPベンダー/ビン/エンボイランデプロイ。

laravel展開におけるセマフォレシの役割は何ですか? Laravelアプリケーションのテストと展開のプロセス。 Semaphoreciにパイプラインをセットアップして、テストを実行し、アプリケーションを構築し、アプリケーションを展開できます。 Semaphoreciは、PHPやLaravelを含む幅広い言語とフレームワークをサポートしており、Laravel EnvoyやDeployerなどの多くの人気のあるツールと統合しています。 Laravel Envoyを使用すると、ブレードの構文でタスクを定義し、リモートサーバーで実行できます。 Envoyを展開に使用するには、Composerを使用してプロジェクトにインストールする必要があります。次に、Project Root DirectoryにEnvoy.blade.phpファイルを作成し、このファイルに展開タスクを定義できます。タスクが定義されたら、Envoy Runコマンドを使用してタスクを実行できます。 -Laravelのボックスサポート。 Laravel DeploymentにDeployerを使用するには、Composerを使用してプロジェクトにインストールする必要があります。次に、プロジェクトルートディレクトリにdeploy.phpファイルを作成し、このファイルに展開タスクを定義できます。タスクが定義されたら、DEP Deployコマンドを使用してそれらを実行できます。いくつかの違いがあります。 Envoyは、タスクを定義するためにブレード構文を使用しますが、DeployerはPHP構文を使用します。 EnvoyはよりLaravel固有のものですが、Deployerはさまざまなフレームワークをサポートしています。 Envoyはよりシンプルで使いやすいですが、Deployerは、ゼロダウンタイムの展開、アトミックデプロイ、並列展開など、より高度な機能を提供します。

はい、同じプロジェクトでLaravel EnvoyとDeplayerの両方を使用できます。ただし、同様の目的を果たすため、両方のツールを使用する必要はありません。ニーズに最適なものを選択できます。ブレード構文を備えたよりシンプルなツールを好む場合は、Envoyを選択できます。さまざまなフレームワークをサポートするより高度なツールを希望する場合は、展開を選択できます。

以上がSemaphoreciでLaravel EnvoyまたはDeplayerを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート