>  기사  >  백엔드 개발  >  Laravel을 사용한 github CI/CD 파이프라인

Laravel을 사용한 github CI/CD 파이프라인

DDD
DDD원래의
2024-09-13 06:30:06481검색

처음 올리는 글이라 정리가 많이 안 되실 수도 있지만, 인샤알라님이 지금까지 해온, 지금 하고 있는 그대로 정확하게 말씀드리도록 노력하겠습니다.
일반적으로 Bengali에서는 좋은 게시물을 얻지 못합니다. CI/CD를 사용하여 cPanel에 laravel 사이트를 배포하는 방법과 게시물로 사용하면 나중에 나에게 유용할 것이며 많은 사람들이 내 형제에게도 도움이 될 수 있다고 생각했습니다. 그럼 주요 작업으로 넘어가겠습니다.

먼저 cPanel에 로그인하고 FTP 계정 메뉴로 이동해야 합니다. 거기로 이동한 후 FTP 계정을 열어야 합니다. 그리고 거기에서 계정이 성공적으로 생성되면 아래 그림과 같은 모습이 됩니다.

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel

계정을 만든 후 사용자 이름, 서버, 포트를 저장하면 나중에 유용하게 사용할 수 있습니다.
그 이후에는 데이터베이스를 생성한 후 개발자라면 꼭 알아야 하므로 표시되지 않습니다.

그런 다음 github에 로그인하고 프로젝트 저장소를 확인하세요.
그리고 아래 이미지와 같이 하세요.
github CI/CD Pipeline with Laravel

github CI/CD Pipeline with Laravel
그런 다음 작업 메뉴로 이동하면 아래와 같은 인터페이스가 표시됩니다. 여기에서 여기를 클릭하여 직접 워크플로를 설정하면 yml에 Logic을 작성하라는 메시지가 표시됩니다. 다음 파일을 복사하여 붙여넣고 데이터베이스 이름, 사용자 이름, 비밀번호를 입력하세요.
`이름: Laravel CI/CD
에:
푸시:
가지: [ 마스터 ]
pull_request:
가지: [ 마스터 ]

직업:
웹 배포:
이름: 배포 중
실행: 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
그런 다음 변경 사항 커밋 버튼을 클릭하고 Git의 마스터 브랜치에 코드가 있으면 cpanel의 public_html 폴더에 저장됩니다. 그리고 로컬에서는 마스터 분기의 풀로 업데이트해야 합니다. 1번은 업로드하는데 시간이 많이 걸리겠지만, 다음부터는 시간이 많이 걸리지 않습니다. 새 코드가 마스터 브랜치에 푸시되자마자 아무런 문제 없이 자동으로 서버로 이동하므로 시간이 훨씬 적게 걸리고 작업 속도가 향상됩니다.

github CI/CD Pipeline with Laravel

이해해주시길 바랍니다. 틀린 부분이 있으면 댓글로 알려주세요
그리고 마음에 드셨다면 댓글 부탁드려요
감사합니다.

위 내용은 Laravel을 사용한 github CI/CD 파이프라인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.