【问题标题】:How to set up github actions Laravel如何设置 github 操作 Laravel
【发布时间】:2022-04-03 05:13:04
【问题描述】:

我正在尝试在 github 操作中设置 CICD。

目前我的配置如下

name: Laravel

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

jobs:
  laravel-tests:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@master

      - name: Copy ENV Laravel Configuration for CI
        run: php -r "file_exists('.env') || copy('.env.ci', '.env');"

      - name: Create database
        run: |
          mkdir -p database
          touch database/database.sqlite
          sudo apt-get install php-sqlite3
        env:
          DB_CONNECTION: sqlite
          DB_DATABASE: database/database.sqlite
          DB_FOREIGN_KEYS: true
      - name: Install Dependencies
        run: |
          composer self-update
          composer install --prefer-source --no-interaction --dev
          composer require --dev php-coveralls/php-coveralls
      - name: Generate key
        run: php artisan key:generate
      - name: Directory Permissions
        run: chmod -R 777 storage bootstrap/cache

      - name: Run tests
        run: vendor/bin/phpunit

一切都在运行,除了连接错误的测试

PDOException: SQLSTATE[HY000] [2002] 连接被拒绝

我会错过什么?为什么我的连接失败了?

下面是.env.ci文件

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:H9HHky2+uG+1SMfzg2tzOj1zembVCsmcxqbBjDTIeew=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=sqlite
DB_DATABASE=database/database.sqlite

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

【问题讨论】:

    标签: php laravel continuous-integration github-pages github-actions


    【解决方案1】:

    在 Laravel 中,当运行 phpunit 测试时,phpunit.xml 文件环境变量优先于所有内容(尽管 PHPUnit 文档说 - 这种行为是 Laravel 特有的)。 (在此处阅读有关 Laravel 中环境变量优先级的更多信息:https://docs.chipperci.com/builds/env/#env-precedence

    所以,我猜你的phpunit.xml 文件将DB_CONNECTION 设置为mysql,或者你的应用程序配置是自定义的,所以DB_CONNECTION 没有被使用。

    旁注,对于您在操作中的第一个命令,您可能会发现运行起来更简单:

    cmd: cp .env.ci .env

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2022-12-20
      • 2019-12-27
      • 2020-12-08
      • 2020-09-27
      • 2021-01-07
      • 2020-09-19
      相关资源
      最近更新 更多