Maison  >  Article  >  développement back-end  >  Pipeline CI/CD github avec Laravel

Pipeline CI/CD github avec Laravel

DDD
DDDoriginal
2024-09-13 06:30:06481parcourir

Ceci est mon premier message, donc vous ne comprendrez peut-être pas beaucoup de choses, mais je vais essayer de le dire exactement comme je l'ai fait ou comme je le fais, InshaAllah.
Généralement, je ne reçois pas de bon message en bengali, j'ai réfléchi à la façon dont je déploie le site Laravel dans cPanel en utilisant CI/CD et si c'est sous forme de message, cela me sera utile plus tard et de nombreuses personnes pourront également bénéficier à mon frère. Passons donc à la tâche principale.

Dans un premier temps, nous devons nous connecter à cPanel et accéder au menu Comptes FTP. Après y être allé, nous devons ouvrir un compte FTP. Et si le compte y est créé avec succès, il ressemblera à l'image ci-dessous.

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

Une fois le compte créé, enregistrez le nom d'utilisateur, le serveur, le port, ils seront utiles plus tard
. Après cela, vous créez la base de données, vous devez le savoir si vous êtes développeur, elle n'est donc pas affichée.

Après cela, connectez-vous à github et vérifiez le référentiel de votre projet.
Et faites comme l'image ci-dessous.
github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel
Après cela, vous pouvez accéder au menu Action et vous verrez une interface comme ci-dessous, à partir d'ici cliquez ici pour configurer vous-même un flux de travail, après cela, il vous dira d'écrire Logic dans yml. Copiez et collez le fichier suivant, donnez le nom de votre base de données, votre nom d'utilisateur, votre mot de passe
. `nom : Laravel CI/CD
sur :
pousser :
succursales : [maître]
pull_request :
succursales : [maître]

emplois :
déploiement Web :
nom : Déploiement
exécution : 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
Après cela, cliquez sur le bouton Valider les modifications, puis s'il y a du code dans la branche master de votre Git, ils seront stockés dans le dossier public_html de votre cPanel. Et localement, vous devez être mis à jour avec le pool de la branche principale. La première fois, le téléchargement prendra beaucoup de temps, mais la prochaine fois, cela ne prendra pas beaucoup de temps. Dès qu'un nouveau code est poussé vers la branche master, il ira automatiquement sur le serveur sans aucun problème, cela prend beaucoup moins de temps et booste le travail.

github CI/CD Pipeline with Laravel

J'espère que vous comprenez. S'il y a une erreur, n'hésitez pas à me le faire savoir dans les commentaires
. Et si vous aimez, n'hésitez pas à commenter
Merci.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn