Gitlab CI/CD 文件编写 推送代码 支持Psr规范性检查,自动化Phpunit测试

这两天在捣鼓 Gitlab.gitlab-ci.yml 文件的编写,做个简单的使用记录

  • 项目安装代码规范检查包: squizlabs/php_codesniffer

composer.json 文件内 scripts 块增加便捷命令

"lint": "phpcs --standard=PSR1,PSR2,./ruleset.xml --ignore=config/us-zipcode.php app/ routes/ config/ ",
"lint-fix": "phpcbf --standard=PSR1,PSR2 --ignore=config/us-zipcode.php  app/ routes/ config/ "

Gitlab CI/CD 文件编写 推送代码  支持Psr规范性检查,自动化Phpunit测试

使用命令:
composer run lint 即可执行代码检查 ,检出的错误:安装提示修复即可

Gitlab CI/CD 文件编写 推送代码  支持Psr规范性检查,自动化Phpunit测试

项目根目录 编写 .gitlab-ci.yml 文件

image: php:7.2

services:
  - mysql:latest
variables:
  MYSQL_DATABASE: "newshop_testing"
  MYSQL_ROOT_PASSWORD: "root"
  VERSION: $CI_COMMIT_SHORT_SHA
  GIT_DEPTH: 1
cache:
  paths:
    - vendor/
    - node_modules/
before_script:
  # Update packages 更新包
  - apt-get update -yqq

  #  # Upgrade to Node 7 更新node 7
  #  - curl -sL https://deb.nodesource.com/setup_7.x | bash -
  #
  #  # Install dependencies 安装依赖
  - apt-get install git libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq

  #  # Install php extensions 安装php扩展
  #  - pecl install mcrypt-1.0.1
  #  - docker-php-ext-enable mcrypt
  - docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache

  # Install Composer and project dependencies  安装composer和项目依赖
  - cd platform
  - curl -sS https://getcomposer.org/installer | php
  - php -r "readfile('https://getcomposer.org/installer');" | php
  - php composer.phar install
  # Copy over testing configuration 复制测试配置。
  # Don't forget to set the database config in .env.testing correctly 不要忘记在.env中设置数据库配置。测试正确
  # DB_HOST=mysql
  # DB_DATABASE=project_name
  # DB_USERNAME=root
  # DB_PASSWORD=secret
  - cp .env.testing.example .env.testing
  - cp .env.example .env
  - php artisan key:generate
  - php artisan config:cache
  - php artisan migrate
  - php artisan db:seed
  - php artisan admin:publish --force --assets


store-codestyle:
  stage: test
  script:
    - php vendor/bin/composer run lint
phpunit:
  stage: test
  script:
    - php vendor/bin/phpunit --coverage-text --colors=never

推送代码即可在gitlab CI/CD模块的流水线内看到事件在运行了

Gitlab CI/CD 文件编写 推送代码  支持Psr规范性检查,自动化Phpunit测试

检查代码格式 和phpunit 运行中有任何一个错误,将会显示 × 通过则为绿色的 点击可看见详情

Gitlab CI/CD 文件编写 推送代码  支持Psr规范性检查,自动化Phpunit测试

Gitlab CI/CD 文件编写 推送代码  支持Psr规范性检查,自动化Phpunit测试

自动化部署项目,docker 镜像等此篇文章不介绍,.gitlab-ci.yml 文件内含义不介绍,需要有一定的 docker基础,可前往 docker 官网查看文档

Gitlab CI/CD 文件编写 推送代码  支持Psr规范性检查,自动化Phpunit测试

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 2年前 自动加精
chowjiawei
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
chowjiawei

没有人 索然无味 我要把他存到笔记,自己偷偷的看 :see_no_evil:

2年前 评论

能做到这个的公司太少了,多半都在赶业务

2年前 评论
chowjiawei (楼主) 2年前
陈先生

好家伙 我正在看这个你就发出来??

2年前 评论
chowjiawei (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!