使用GitLab Runner为基于Laravel的PHP项目进行部署

当使用GitLab Runner为基于Laravel的PHP项目进行部署时,你可以创建一个.gitlab-ci.yml文件来配置CI/CD流水线。下面是一个示例配置,你可以根据你的项目需求进行适当的修改:

stages:
  - build
  - deploy

variables:
  APP_ENV: production
  DB_HOST: your_database_host
  DB_DATABASE: your_database_name
  DB_USERNAME: your_database_username
  DB_PASSWORD: your_database_password

cache:
  paths:
    - vendor/

before_script:
  - apt-get update
  - apt-get install -y unzip
  - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  - cp .env.example .env
  - composer install --no-interaction --prefer-dist --no-suggest
  - php artisan key:generate
  - php artisan config:cache

build:
  stage: build
  script:
    - php artisan route:cache
    - php artisan view:cache
    - php artisan optimize

deploy_production:
  stage: deploy
  script:
    - ssh deploy@your_server 'cd /var/www/html && git pull origin master'
    - ssh deploy@your_server 'cd /var/www/html && composer install --no-dev --optimize-autoloader'
    - ssh deploy@your_server 'cd /var/www/html && php artisan migrate --force'
    - ssh deploy@your_server 'cd /var/www/html && php artisan config:cache'
    - ssh deploy@your_server 'cd /var/www/html && php artisan route:cache'
    - ssh deploy@your_server 'cd /var/www/html && php artisan view:cache'

请注意,上述配置假设你已经在服务器上设置了适当的部署用户(deploy)和相关权限。确保将your_database_hostyour_database_nameyour_database_usernameyour_database_password替换为实际的数据库连接信息。

此配置文件的关键点如下:

  1. before_script阶段,我们安装依赖、生成密钥并进行配置缓存。
  2. build阶段用于优化Laravel项目。
  3. deploy_production阶段连接到你的服务器,执行必要的操作,例如从Git拉取代码、安装依赖、运行数据库迁移,并缓存配置、路由和视图。

请根据你的具体要求进行适当的调整和自定义。