Gitlab CI/CD 檔案編寫 推送程式碼 支援Psr規範性檢查,自動化Phpunit測試

chowjiawei發表於2021-06-11

這兩天在搗鼓 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 協議》,轉載必須註明作者和本文連結

相關文章