58 lines
2.0 KiB
YAML
58 lines
2.0 KiB
YAML
# Gitee Go 流水线配置(模板)
|
||
# 目标:代码推送后自动执行“结构变更 SQL 脚本”与基础回归测试。
|
||
#
|
||
# 注意:该文件为模板,具体 DB/ENV 需要在 Gitee Go 的「变量/密钥」中配置。
|
||
# 不要把任何密码/令牌写进仓库。
|
||
|
||
version: 1.0
|
||
name: SaaSShop CI
|
||
|
||
stages:
|
||
- test
|
||
|
||
jobs:
|
||
test:
|
||
stage: test
|
||
image: php:8.2
|
||
steps:
|
||
- name: 安装系统依赖
|
||
run: |
|
||
apt-get update
|
||
apt-get install -y git unzip libzip-dev default-mysql-client libsqlite3-dev
|
||
docker-php-ext-install pdo pdo_mysql pdo_sqlite
|
||
|
||
- name: 安装 Composer
|
||
run: |
|
||
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
|
||
composer --version
|
||
|
||
- name: 安装 PHP 依赖
|
||
run: |
|
||
composer install --no-interaction --prefer-dist --optimize-autoloader
|
||
|
||
- name: 准备环境文件(CI 默认使用 sqlite,避免依赖外部 DB)
|
||
run: |
|
||
[ -f .env ] || cp .env.example .env
|
||
# 覆盖为 sqlite(可按需在 Gitee Go 变量中替换为 mysql)
|
||
sed -i 's/^DB_CONNECTION=.*/DB_CONNECTION=sqlite/' .env
|
||
sed -i 's%^DB_DATABASE=.*%DB_DATABASE='"$PWD"'/database/database.sqlite%' .env
|
||
grep -q '^DB_DATABASE=' .env || echo "DB_DATABASE=$PWD/database/database.sqlite" >> .env
|
||
mkdir -p database
|
||
touch database/database.sqlite
|
||
php artisan key:generate
|
||
|
||
- name: 运行 Laravel migrations
|
||
run: |
|
||
php artisan migrate --force
|
||
php artisan migrate:status
|
||
|
||
- name: 运行 SQL 结构迁移脚本(V1__xxx.sql)
|
||
run: |
|
||
composer run db:sql-migrate
|
||
|
||
- name: 运行测试(先跑关键链路,再全量)
|
||
run: |
|
||
php artisan test --filter='AdminPlanTest|AdminSiteSubscriptionTest|AdminPlatformOrderTest'
|
||
php artisan test
|