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.
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.
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 ]
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/*
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.
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!