github CI/CD 管道与 Laravel

DDD
发布: 2024-09-13 06:30:06
原创
480 人浏览过

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 plus 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

希望你能理解。如果有任何错误,请在评论中告诉我
如果喜欢的话请评论
谢谢你。

以上是github CI/CD 管道与 Laravel的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!