Rumah  >  Artikel  >  pembangunan bahagian belakang  >  github CI/CD Pipeline dengan Laravel

github CI/CD Pipeline dengan Laravel

DDD
DDDasal
2024-09-13 06:30:06481semak imbas

Ini adalah siaran pertama saya, jadi anda mungkin tidak dapat menyelesaikan banyak perkara, tetapi saya akan cuba menyatakannya dengan tepat seperti yang saya lakukan atau lakukan, InshaAllah.
Secara amnya tidak mendapat apa-apa jawatan yang baik dalam Bengali Saya fikir bagaimana saya menggunakan tapak laravel dalam cPanel menggunakan CI/CD dan melakukannya sebagai siaran, ia akan berguna untuk saya nanti dan ramai orang juga boleh memberi manfaat kepada saudara saya. Jadi mari kita beralih kepada tugas utama.

Pada mulanya kita perlu log masuk ke cPanel, dan pergi ke menu Akaun FTP. Selepas ke sana kita perlu membuka akaun FTP. Dan jika akaun berjaya dibuat di sana, ia akan kelihatan seperti gambar di bawah.

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

Selepas akaun dibuat, simpan nama pengguna, pelayan, port, ia akan berguna kemudian Selepas itu anda mencipta pangkalan data, anda mesti tahu ini jika anda seorang pembangun, jadi ia tidak ditunjukkan.

Selepas itu anda log masuk ke github, dan semak repositori projek anda.

Dan lakukan seperti imej di bawah.

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel Selepas itu anda boleh pergi ke menu Action, dan anda akan melihat antara muka seperti di bawah, dari sini klik pada set up a workflow sendiri, selepas itu ia akan memberitahu anda untuk menulis Logic dalam yml. Salin dan tampal fail berikut, berikan nama pangkalan data anda, nama pengguna, kata laluan
`nama: Laravel CI/CD
pada:
tolak:
cawangan: [ induk ]
tarik_permintaan:
cawangan: [ induk ]

pekerjaan:

web-deploy:
nama: Menggunakan
runs-on: 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 Selepas itu, klik pada butang Komit perubahan, kemudian jika terdapat sebarang kod dalam cawangan induk dalam Git anda, maka ia akan disimpan dalam folder public_html cpanel anda. Dan secara tempatan anda perlu dikemas kini dengan kolam dari cawangan induk. Kali pertama akan mengambil banyak masa untuk memuat naik, tetapi dari kali seterusnya ia tidak akan mengambil banyak masa. Sebaik sahaja kod baharu ditolak ke cawangan induk, ia akan secara automatik pergi ke pelayan tanpa sebarang masalah, ia mengambil masa yang lebih singkat dan meningkatkan kerja.

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.

Atas ialah kandungan terperinci github CI/CD Pipeline dengan Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn