ホームページ >バックエンド開発 >PHPチュートリアル >Laravel を使用した github CI/CD パイプライン

Laravel を使用した github CI/CD パイプライン

DDD
DDDオリジナル
2024-09-13 06:30:06518ブラウズ

これは私の最初の投稿なので、多くのことが整理されていないかもしれませんが、私がこれまでに行ってきた、または現在行っている方法を正確に言おうとします、InshaAllah。
一般的にベンガル語では良い投稿が得られません。私がCI/CDを使用してcPanelにlaravelサイトをどのようにデプロイしているか考えました。それが投稿としてあれば、後で私にとって役立つでしょうし、多くの人が私の兄弟にも利益をもたらすことができるでしょう。それでは、メインのタスクに進みましょう。

まず、cPanel にログインし、FTP アカウント メニューに移動する必要があります。そこに行ったら、FTP アカウントを開く必要があります。そこでアカウントが正常に作成されると、下の図のようになります。

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

アカウントを作成したら、ユーザー名、サーバー、ポートを保存します。これらは後で役立ちます。
その後データベースを作成しますが、開発者であればこれを知っておく必要があるため、表示されていません。

その後、github にログインし、プロジェクトのリポジトリを確認します。
そして、以下の画像のようにしてください。
github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel
その後、[アクション] メニューに移動すると、以下のようなインターフェイスが表示されます。ここをクリックして自分でワークフローを設定すると、yml でロジックを記述するように指示されます。次のファイルをコピーして貼り付け、データベース名、ユーザー名、パスワードを指定します。
`名前: Laravel CI/CD
に:
プッシュ:
ブランチ: [ マスター ]
プルリクエスト:
ブランチ: [ マスター ]

ジョブ:
Web デプロイ:
名前: デプロイ中
実行: ubuntu-latest

services:
  mysql:
    image: mysql:5.7
    ports:
      - 3306:3306
    env:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: dbname
      MYSQL_USER: username
      MYSQL_PASSWORD: password
    options: '--health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=5s --health-retries=3'

steps:
  - uses: actions/checkout@v2.3.2

  - name: Setup PHP
    uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e
    with:
      php-version: '8.1.21'

  - name: Copy .env
    run: php -r "file_exists('.env') || copy('.env.example', '.env');"

  - name: Update .env for CI environment
    run: |
      sed -i 's/^DB_CONNECTION=.*/DB_CONNECTION=mysql/' .env
      sed -i 's/^DB_HOST=.*/DB_HOST=127.0.0.1/' .env
      sed -i 's/^DB_PORT=.*/DB_PORT=3306/' .env
      sed -i 's/^DB_DATABASE=.*/DB_DATABASE=dbname/' .env
      sed -i 's/^DB_USERNAME=.*/DB_USERNAME=username/' .env
      sed -i 's/^DB_PASSWORD=.*/DB_PASSWORD=password/' .env

  - name: Install Dependencies
    run: composer install --ignore-platform-reqs

  - name: Generate key
    run: php artisan key:generate

  - name: Wait for MySQL to be ready
    run: |
      until mysqladmin ping --host=127.0.0.1 --user=username --password=password --silent; do
        echo "Waiting for database connection..."
        sleep 5
      done

  - name: Test Database Connection
    run: php -r "new PDO('mysql:host=127.0.0.1;dbname=dbname', 'username', 'password');"

  - name: Rollback Migrations and Seed
    run: php artisan migrate:fresh --seed --verbose

  - name: Directory Permissions
    run: chmod -R 775 storage

  - name: ? Sync files
    uses: SamKirkland/FTP-Deploy-Action@4.0.0
    with:
      server: ${{ secrets.FTP_SERVER }}
      username: ${{ secrets.FTP_USERNAME }}
      password: ${{ secrets.FTP_PASSWORD }}
      server-dir: /
      local-dir: ./
      exclude: |
        vendor/*
        node_modules/*

`

github CI/CD Pipeline with Laravel
その後、[変更をコミット] ボタンをクリックすると、Git の master ブランチにコードがある場合、それらは cpanel の public_html フォルダーに保存されます。また、ローカルではマスター ブランチからプールを更新する必要があります。初回はアップロードに時間がかかりますが、次回からはそれほど時間はかかりません。新しいコードがマスター ブランチにプッシュされるとすぐに、問題なく自動的にサーバーに送信され、時間が大幅に短縮され、作業が効率化されます。

github CI/CD Pipeline with Laravel

ご理解いただければ幸いです。間違いがありましたら、コメントでお知らせください
。 気に入っていただけましたら、コメントをお願いします
ありがとうございます。

以上がLaravel を使用した github CI/CD パイプラインの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。