Heim >Backend-Entwicklung >PHP-Tutorial >Github CI/CD-Pipeline mit Laravel

Github CI/CD-Pipeline mit Laravel

DDD
DDDOriginal
2024-09-13 06:30:06518Durchsuche

Dies ist mein erster Beitrag, daher werden Sie vielleicht nicht viele Dinge klären, aber ich werde versuchen, es genau so zu sagen, wie ich es getan habe oder tue, InshaAllah.
Im Allgemeinen bekomme ich keinen guten Beitrag auf Bengali. Ich dachte, wie ich die Laravel-Site in cPanel mit CI/CD bereitstelle und es als Beitrag mache, es wird später für mich nützlich sein und vielen Menschen kann auch mein Bruder zugute kommen. Kommen wir also zur Hauptaufgabe.

Zuerst müssen wir uns bei cPanel anmelden und zum Menü „FTP-Konten“ gehen. Nachdem wir dorthin gegangen sind, müssen wir ein FTP-Konto eröffnen. Und wenn das Konto dort erfolgreich erstellt wurde, sieht es wie im Bild unten aus.

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

Nachdem das Konto erstellt wurde, speichern Sie den Benutzernamen, den Server und den Port, sie werden später nützlich sein
Nachdem Sie die Datenbank erstellt haben, müssen Sie dies wissen, wenn Sie Entwickler sind, daher wird es nicht angezeigt.

Danach melden Sie sich bei Github an und überprüfen das Repository Ihres Projekts.
Und gehen Sie wie im Bild unten vor.
github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel
Danach können Sie zum Aktionsmenü gehen und eine Oberfläche wie unten sehen. Klicken Sie hier auf „Workflow selbst einrichten“. Anschließend werden Sie aufgefordert, Logik in yml zu schreiben. Kopieren Sie die folgende Datei und fügen Sie sie ein. Geben Sie Ihren Datenbanknamen, Ihren Benutzernamen und Ihr Passwort ein `Name: Laravel CI/CD
am:
drücken:
Zweige: [ master ]
pull_request:
Zweige: [ master ]

Jobs:

Web-Deploy:
Name: Wird bereitgestellt
läuft weiter: 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 Klicken Sie anschließend auf die Schaltfläche „Änderungen übernehmen“. Wenn im Master-Zweig Ihres Git Code vorhanden ist, wird dieser im Ordner „public_html“ Ihres Cpanels gespeichert. Und lokal müssen Sie mit dem Pool aus der Hauptniederlassung aktualisiert werden. Das erste Mal wird das Hochladen viel Zeit in Anspruch nehmen, aber beim nächsten Mal wird es nicht mehr viel Zeit in Anspruch nehmen. Sobald ein neuer Code an den Master-Zweig gesendet wird, wird er automatisch und ohne Probleme auf den Server übertragen, was viel weniger Zeit in Anspruch nimmt und die Arbeit beschleunigt.

github CI/CD Pipeline with Laravel

Saya harap awak faham. Jika terdapat sebarang kesilapan, sila beritahu saya dalam komen Dan jika anda suka, sila komen
Terima kasih.

Das obige ist der detaillierte Inhalt vonGithub CI/CD-Pipeline mit Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn